属性値でメトリクスとトレースをフィルタリングする
属性の値に基づいて、レポートするメトリクスやトレースを非常に具体的なイベントタイプに限定したい場合があります(たとえば、TCP トラフィックのみをレポートするようにネットワークメトリクスをフィルタリングする、など)。
filter YAML セクションでは、アプリケーションとネットワークの両方のメトリクスを属性値でフィルタリングできます。
以下の構造になっています。
filter:
application:
# アプリケーションメトリクスを制限する属性マッチのマップ
network:
# ネットワークメトリクスを制限する属性マッチのマップ
アプリケーションとネットワークファミリーに属するメトリクスとその属性の一覧については、OBI のエクスポートメトリクスドキュメントを参照してください。
application と network の各フィルターセクションはマップで、各キーは属性名(Prometheus または OpenTelemetry 形式)で、値として文字列または数値マッチャー(後述)を持ちます。
文字列マッチングには match または not_match プロパティを使用できます。
どちらのプロパティも glob 風 の文字列を受け付けます(完全な値またはワイルドカードを含む文字列)。
match プロパティを設定すると、OBI はその属性について指定した値に一致するメトリクスとトレースのみをレポートします。
not_match プロパティは match の否定です。
以下の例では、UDP プロトコルを除き、宛先ポート 53 を対象とする接続についてネットワークメトリクスをレポートします。
filter:
network:
transport:
not_match: UDP
dst_port:
match: '53'
数値フィルター
OBI v0.6.0 以降では、数値フィルターも使用できます。 たとえば、以下の例ではサーバーポートが 8000 以上のすべてのスパンが含まれます。
filter:
application:
server.port:
greater_equals: 8000
以下のマッチャーが使用できます。
- greater_than
- greater_equals
- equals
- not_equals
- less_equals
- less_than
数値フィルターと文字列マッチャーは組み合わせて使用できます。
filter:
network:
transport:
not_match: UDP
dst_port:
less_than: 1024
フィードバック
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!