OpenTelemetryブームなので、実際今Collectorでどこまですぐに(何かを自作せずに)監視したいもの、特にミドルウェアまわりが見られるのか、というのを把握しておこうと思う。
opentelemetry-collector-contribリポジトリのまずはreceiverを一覧してざっとREADMEを見て回るところから始めた。
箇条書きのalpha、betaといったものは安定度(stability)で、development→alpha→beta→stableというステージになっているとのこと。実際のところcontribにあるものでstableなものはなく、developmentやalphaがゴロゴロしている状況。
renovate系更新が多いので、改良具合は見通しが悪い。新規フォルダが作られるのとREADMEを追跡するのがいいのかな。
WindowsパフォーマンスカウンタからActive Directoryドメインコントローラに関するメトリクスを取得する。
1つ以上のAerospikeノードからパフォーマンスメトリクスを収集する。AerospikeはNoSQL DB。
Apache HTTPサーバのserver-status?autoエンドポイントを利用して状態を取得する。
Apache SparkクラスタからApache Spark REST APIを使ってメトリクスを収集する。
AWS CloudWatchからAWS SDK for CloudWatch Logs経由でメトリクスを収集する。GetMetricData APIコールはお金かかるよ、という注意あり。
AWS CloudWatchからAWS SDK for CloudWatch Logs経由でCloudWatch eventsを受け取る。
CloudWatch Container Insights経由でメトリクスを取得する。ECS、EKSおよびEC2上k8s向け。
Amazon ECS Taks Metadata Endpoint経由でタスクメタデータとDockerステータスを読み、リソース利用メトリクスを取得する。
AWS Kinesis Data Firehose配送ストリームメッセージおよび受け取ったレコードを解析する。
X-Rayセグメント形式のセグメントを受け取る。
Azure Blob Storageのログおよびトレースデータを受け取る。
AzureリソースからAzure Event Hubに書き出されたログを取得する。
Azure Monitor APIからリソースメトリクスを取得する。
F5 Big-IPノードの状態をiControl REST APIで取得する。
GraphiteのコンポーネントであるCarbonのプレインテキストプロトコルのメトリクスを取得する。
NTPサーバのChronyのメトリクスを取得する。
Cloudflare logsアグリゲーションシステムからLogPush Jobsで送られたログを受け取る。
Cloud Foundyのリバースログプロキシゲートウェイのメトリクスを取得する。
CollectDのwrite_httpプラグインからエクスポートされたデータを取得する。
CoutchDBサーバから/node/ノード名/stats/coutchdbエンドポイント経由で状態を取得する。
Datadog APM形式のトレースを受け取る。
ローカルDockerデーモンのコンテナ状態(CPU・メモリ・ネットワーク・blkioコントローラ)を取得する。
node stats、cluster health、index statsのエンドポイントからElasticsearchクラスタのメトリックを取得する。
Goのexpvarパッケージからのメトリクスを取得する。
ファイルの追尾および解析を行う。
globパターンで指定したファイルからメトリクスを取得する。
Apache FlinkのJobmanger、Taskmanager、Job、Task、Operatorのメトリクスを取得する。
Fluent Forwardプロトコル経由でのイベントを受け付けるTCPサーバーを実行する。
Gitベンダーからのデータを収集する。たとえばGitHubからリポジトリカウント、ブランチカウント、PR open countなどをメトリクスとして取得できる。
Google Cloud PubsubサブスクリプションからのOTLPメッセージを取得する。
Collibra社によってテストされているがGCP公式ではないという注意がある。
SpannerのTotal and Top N built-in tables経由でデータベースのメトリクスを取得する。
HAProxyプロセスのメトリクスを取得する。
ホストシステムのメトリクスを生成・取得する。エージェント相当。
ステータスコードなどをメトリクスとして取得する。HTTPエンドポイントに対するsynthetic checkとして利用できる。
IISインスタンスのメトリクスをWindowsパフォーマンスカウンタ経由で取得する。
InfluxDB Line Protocolとしてメトリクスデータを取得する。
Jaegerフォーマットのトレースデータを受け取る。
OpenTelemetry JMX Metric Gathererと連携してMBeanサーバからのメトリクスを受け取る。
journaldイベントを解析する。
k8s APIサーバからクラスタレベルのメトリクスとエンティティイベントを収集する。
Kafkaサーバからメトリクスを取得する。
Kafkaからトレース、メトリクス、ログを取得する。
kubeletのAPIサーバからメトリクスを取得する。
Grafana Lokiのpush APIを実装したもの。Lokiフォーマットのログエントリを受け付けるHTTP/gRPCサーバを実行する。
MongoDB Atlasから、monitoring API経由でメトリクスを、webhook経由でアラートを、events API経由でイベントを取得する。
MongoDBインスタンスから状態を取得する。
MySQLのグローバルステータスおよびInnoDBテーブルからメトリクスを取得する。
Unix名前付きパイプを開き、ログを読み込む。
Nginxインスタンスから状態を取得する。
VMwareのNSX-T仮想ネットワーキングのメトリクスを取得する。
OpenCensusフォーマットのデータを取得する。
Oracleデータベースのメトリクスを取得する。
osqueryデーモンに照会し、出力をログに変換する。
OpenTelemetry Protocol with Apache Arrowでテレメトリデータを取得する。
JSONファイルからパイプラインデータを読み込む。ディレクトリを監視してファイルを読み込む。
PodmanサービスAPIで実行中コンテナの状態を取得する。
PostgreSQLの状態を取得する。
Prometheusフォーマットのメトリクスデータを取得する。
Pulsarからログ、メトリクス、トレースを受け取る。
Pure STorage内部サービスホストからのメトリクスを取得する。
Pure Storage FlashBladeからのメトリクスを取得する。
RabbitMQ Management Pluginを使ってRabbitMQノードから状態を取得する。
任意のレシーバを動的に構成する。
Redis INFOデータを取得する。
NoSQLのRiakの/statsエンドポイントからメトリクスを取得する。
インメモリデータベースのSAP HANAインスタンスから状態を取得する。
ほかのコレクタまたはSignalFx Smart Agentからのトレースを受け取るようにする。
SignalFx protoフォーマットのメトリクス、およびSignalFx protoフォーマットのイベント/ログを受け取る。
Prometheusレシーバのラッパー。
Skywalkingフォーマットのトレースデータおよびメトリクスデータを取得する。
SNMPが有効なホストの状態を取得する。
Snowflakeアカウントからメトリクスを取得する。
Solace PubSub+ Event Brokerからトレースデータを受け取る。
Splunk Enterprise deploymentのパフォーマンスメトリクスを取得する。
Splunk HECフォーマットのイベントを受け取る。
データベースからのカスタムSQLクエリの結果からメトリクスを生成する。
Microsoft SQL ServerのメトリクスをWindowsパフォーマンスカウンタを使って収集する。
SSH/SFTPの状態を取得する。
StatsDメッセージを受け取る。
TCP経由でログを受け取る。
UDP経由でログを受け取る。
vCenterまたはESXiホストのメトリクスを取得する。
Wavefrontのメトリクス(Carbonに類似)を取得する。
任意のWebhookスタイルのデータソースを受け取る。
Windowsイベントログを追跡・解析する。
PDHインターフェイスを使ってシステム、アプリケーション、カスタムのパフォーマンスカウンタデータを取得する。
Zipkinからスパンを受け取る。
Zookeeperインスタンスからメトリクスを収集する。