monedula-gitops
Apache Kafka のための GitOps ツール。トピック、アクセス、クォータ、スキーマ、SCRAM ユーザー、Confluent RBAC を CLI または Kubernetes オペレーターで扱います。
このページは英語から機械翻訳されています。 原文を読む
monedula-metrics-reporter v0.10.0, AGPL-3.0
monedula-metrics-reporter はブローカーの中で動作し、メトリクスを OTLP で collector にプッシュします。Kafka の 2 つのメトリクスレジストリ、JVM メトリクス、KIP-714 クライアントテレメトリを、ブローカーの識別情報をラベルとして付けて送ります。collector が停止しても、Kafka は気づきません。
VERSION=0.10.0
curl -L -o monedula-metrics-reporter-${VERSION}.jar \
https://repo1.maven.org/maven2/dev/monedula/monedula-metrics-reporter/${VERSION}/monedula-metrics-reporter-${VERSION}.jar VERSION=0.10.0
curl -L -o monedula-metrics-reporter-${VERSION}.jar \
https://github.com/monedula-dev/monedula-metrics-reporter/releases/download/v${VERSION}/monedula-metrics-reporter-${VERSION}.jar metric.reporters=dev.monedula.metricsreporter.OtlpMetricReporter
otlp.metric.reporter.endpoint=http://otel-collector:4317
otlp.metric.reporter.transport=grpc cp monedula-metrics-reporter-0.10.0.jar $KAFKA_HOME/libs/# then add the lines above to server.properties# every series carries the broker's cluster and node IDs as resource attributes
Kafka のメトリクスの多くは遠回りをしています。
一般的なスタックでは、すべてのブローカーに JMX エクスポーターを取り付けます。エクスポーターは Kafka のメトリクスを JMX MBean から読み戻し、ルールファイルでメトリクス名にマッピングし、スクレイプ用に公開するか、collector へさらにプッシュします。
monedula-metrics-reporter は Kafka 自身の MetricsReporter インターフェースに組み込まれ、collector と直接 OTLP で通信します。
メトリクスのコールバックはメモリ内のマップを更新するだけで、ネットワーク I/O はすべてデーモンスレッドで行われます。リトライキューも無制限のメモリ使用もないため、collector が遅くても停止していても、produce や fetch のリクエストが待たされることはありません。
フェイルセーフ設計の仕組み(英語)
Kafka のブローカーは、2 つの並行するシステムを通じてメトリクスを公開します。ブローカーのシグナルの一部は、レガシーの Yammer レジストリにしか登録されないため、SPI だけのレポーターはそれらを取りこぼします。このプラグインは 1 つの設定で両方にアタッチし、同じ JAR がクライアントでも変更なしで動作します。
UnderReplicatedPartitionsOfflinePartitionsCountActiveControllerCountBrokerTopicMetricsKIP-714
ブローカー上では、このプラグインは KIP-714 クライアントがプッシュするテレメトリ(クライアント側のリクエストレイテンシやリバランスの所要時間など)も受け取り、同じ collector に転送します。クライアントの系列にはブローカーの識別情報と client id が付くので、PromQL でブローカーの系列と結合できます。
クライアントメトリクスを収集する(英語)
kafka_cluster_id, kafka_node_id | デフォルトで有効 |
|---|---|
client_id | デフォルトで有効 |
client_instance_id | デフォルトで無効、高カーディナリティ |
| プリンシパルとクライアントアドレス | デフォルトで無効、個人データ |
クイックスタートは Docker Compose で Kafka、レポーター、OpenTelemetry Collector、Prometheus、Grafana を起動し、すぐに使える Grafana ダッシュボードと Prometheus のアラートルールも用意します。
Grafana クイックスタート(英語)
VERSION=0.10.0
curl -L -o monedula-metrics-reporter-${VERSION}.jar \
https://repo1.maven.org/maven2/dev/monedula/monedula-metrics-reporter/${VERSION}/monedula-metrics-reporter-${VERSION}.jar VERSION=0.10.0
curl -L -o monedula-metrics-reporter-${VERSION}.jar \
https://github.com/monedula-dev/monedula-metrics-reporter/releases/download/v${VERSION}/monedula-metrics-reporter-${VERSION}.jar 座標:dev.monedula:monedula-metrics-reporter。各 GitHub リリースには、CycloneDX SBOM と Sigstore 署名付きの JAR も含まれています。
同じチームによる、Apache Kafka のための無料ツールがほかにもあります。Flock について
Apache Kafka のための GitOps ツール。トピック、アクセス、クォータ、スキーマ、SCRAM ユーザー、Confluent RBAC を CLI または Kubernetes オペレーターで扱います。
Apache Kafka の ACL を、チェックサム付きの計画を通じて Confluent RBAC のロールバインディングに変換する CLI。ACL が削除される前に実効アクセスを検証します。
実際の Kafka クラスターを共有可能な Kafka Simulator のリンクに変える、読み取り専用の Go CLI。AI エージェント向けの MCP サーバーも備えています。
ブラウザで動く、インタラクティブで決定的な Apache Kafka シミュレーター。クラスターを壊し、タイムラインをスクラブして、なぜそう反応したのかを読み解けます。