blog/content/posts/2025-02-02/index.md

63 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
author: usbharu
draft: true
categories:
- 技術
date: 2025-02-02T14:52:40+09:00
tags:
- Golang
- Misskey
- Prometheus
keywords:
- Golang
- Misskey
- Prometheus
title: misskeyのPrometheus Exporterを作った
relpermalink: posts/2025-02-02/
url: posts/2025-02-02/
decription: misskeyのPrometheus Exporterを作った
---
[usbharu/misskey-exporter - misskey-exporter - Gitea for usbharu](https://git.usbharu.dev/usbharu/misskey-exporter)
[misskey-exporter - Gitea for usbharu](https://git.usbharu.dev/usbharu/-/packages/container/misskey-exporter/4dc8585)
皆さん監視 やってますか? 僕はkube-prometheus-stackを動かし始めたは良いものの微妙に面倒くさくて放置してます。k8sの監視は色々ややこしくてよくわからん ということでとりあえずPrometheusから理解していくことにしました。Prometheusがpull型とか言うのは知ってたんですが、それ以外は知らなかったので手始めに自分でexporterを作ってみることにしました。ちょうどこの記事で
[2025年1月11日0時頃から同1時頃までの障害について · usbharu - blog](https://blog.usbharu.dev/posts/2025-01-11/)
> 今後の対応
> ジョブキューの監視をおこない早期に対処できるようにします。
> GTLの監視をおこないInboxの問題を早期に対処できるようにします。
って言っちゃったのでMisskeyのExporterを作りました。
## 使用技術
- Golang
- PrometheusのGolang公式Client Library
- go-misskey
[yitsushi/go-misskey: Misskey Go SDK](https://github.com/yitsushi/go-misskey)
特筆すべき技術的な特徴なんかは1ミリも無く、ただ愚直に実装しただけなのでコードの紹介なんかはないです。
## 出来上がったもの
[usbharu/misskey-exporter - misskey-exporter - Gitea for usbharu](https://git.usbharu.dev/usbharu/misskey-exporter)
<iframe src="https://misskey.usbharu.dev/embed/notes/a3pew0er9r?rounded=false&border=false" data-misskey-embed-id="v1_2e808ffe-a2aa-4f6b-8ae8-f0c05b4ab978" loading="lazy" referrerpolicy="strict-origin-when-cross-origin" style="border: none; width: 100%; max-width: 500px; height: 300px; color-scheme: light dark;"></iframe>
<script defer src="https://misskey.usbharu.dev/embed.js"></script>
とりあえずジョブキュー、GTL/LTLのレスポンスタイムとそのHistogram(〇〇パーセンタイル計算用)、ユーザー/ート数を取得できるようになりました。今後オンラインユーザーとかも計測できるようにしたいなって感じです。Misskeyは最近自動で閉鎖サーバーへの配送停止するようになったのでJobのDelayedがほぼ無くてさみしいですね(?)
あとまだexporter作っただけでPrometheusとかGrafanaがよくわかってないので本番運用はしていません。
## 次に向けて
- Prometheusのアラートを作れるようになりたい
- オンラインユーザーを取得できるようにしたい
- メディア等の情報を取れるようにしたい(オブジェクトストレージ/ローカルストレージ等も)
- 投稿のAPIのレスポンスタイムを測れるようにしたい
- メディアプロ棋士とか配送用のプロ棋士の監視に対応したい