• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

Linkerd監視のインストールと設定:マニフェストを使用したNRDOT

|View as Markdown (English)

このページでは、Kubernetesマニフェストを使用してNRDOT Collectorをインストールし、Linkerdプロキシとコントロールプレーンのメトリクスをスクレイプするように設定し、データがNew Relicに送信されていることを確認します。これには約15分かかります。

互換性と要件

サポート対象

  • kubectlが設定されたKubernetesクラスタ(EKS、GKE、AKS、または自己管理型)
  • Linkerdがインストールされ、正常に動作していること(linkerd checkがパスすること)
  • マニフェストで管理されるクラスタの設定

必要なこと

  • New RelicのIngestライセンスキー

  • ベースのKubernetes OpenTelemetryマニフェストのインストレーションが完了していること

  • New Relic OTLPエンドポイントへのネットワーク接続

  • 監視対象のネームスペースでインジェクションが有効になっていること。有効になっていない場合は、アノテーションを追加して再起動してください:

    bash
    $
    kubectl annotate namespace <YOUR_NAMESPACE> linkerd.io/inject=enabled
    $
    kubectl rollout restart deployment -n <YOUR_NAMESPACE>

インストール

  1. ローカルのdeployment-configmap.yamlのreceivers.prometheus.config.scrape_configsリストにLinkerdのスクレイプ設定を追加します。

    - job_name: 'linkerd-controller'
    kubernetes_sd_configs:
    - role: pod
    namespaces: { names: ['linkerd', 'linkerd-viz'] }
    relabel_configs:
    - { source_labels: [__meta_kubernetes_pod_container_port_name], action: keep, regex: admin-http }
    - { source_labels: [__meta_kubernetes_pod_container_name], target_label: component }
    - { source_labels: [__meta_kubernetes_namespace], target_label: namespace }
    - { source_labels: [__meta_kubernetes_pod_name], target_label: pod }
    - job_name: 'linkerd-proxy'
    kubernetes_sd_configs: [{ role: pod }]
    relabel_configs:
    - { source_labels: [__meta_kubernetes_pod_container_name, __meta_kubernetes_pod_container_port_name, __meta_kubernetes_pod_label_linkerd_io_control_plane_ns], action: keep, regex: ^linkerd-proxy;linkerd-admin;linkerd$ }
    - { source_labels: [__meta_kubernetes_namespace], target_label: namespace }
    - { source_labels: [__meta_kubernetes_pod_name], target_label: pod }
    - { source_labels: [__meta_kubernetes_pod_label_linkerd_io_control_plane_ns], target_label: linkerd_control_plane_ns }
    - { source_labels: [__meta_kubernetes_pod_label_linkerd_io_control_plane_component], target_label: linkerd_control_plane_component }
  2. プロセッサとmetrics/linkerdパイプラインを同じdeployment-configmap.yamlに追加します。

    processors:
    resource/strip_service:
    attributes:
    - { key: service.name, action: delete }
    - { key: service.instance.id, action: delete }
    transform/k8s:
    metric_statements:
    - context: datapoint
    statements:
    - set(attributes["k8s.namespace.name"], attributes["namespace"]) where attributes["namespace"] != nil
    - set(attributes["k8s.pod.name"], attributes["pod"]) where attributes["pod"] != nil
    - delete_key(attributes, "instance")
    transform/deployment:
    metric_statements:
    - context: datapoint
    statements:
    - set(attributes["k8s.deployment.name"], attributes["k8s.pod.name"]) where attributes["k8s.deployment.name"] == nil and attributes["k8s.pod.name"] != nil
    - replace_pattern(attributes["k8s.deployment.name"], "-[a-z0-9]+-[a-z0-9]+$", "") where attributes["k8s.deployment.name"] == attributes["k8s.pod.name"]
    transform/metadata_nullify:
    metric_statements:
    - context: metric
    statements:
    - set(description, "")
    - set(unit, "")
    filter/drop_unused:
    error_mode: ignore
    metrics:
    metric:
    - 'name == "rustls_info" or name == "proxy_build_info"'
    - 'name == "scrape_series_added"'
    - 'IsMatch(name, "stack_(poll|create|drop)_total") or name == "stack_poll_total_ms"'
    - 'IsMatch(name, "tokio_rt_.*")'
    - 'IsMatch(name, "(inbound|outbound)_http_.*_frame_size_bytes")'
    - 'IsMatch(name, "(inbound|outbound)_tcp_detect_http_duration_seconds")'
    - 'IsMatch(name, "outbound_tcp_balancer_queue_.*")'
    - 'name == "scrape_duration_seconds" or name == "scrape_samples_scraped" or name == "scrape_samples_post_metric_relabeling"'
    pipelines:
    metrics/linkerd:
    receivers: [prometheus]
    processors: [memory_limiter, resource/strip_service, transform/k8s, transform/deployment, transform/metadata_nullify, filter/drop_unused, resource/newrelic, batch]
    exporters: [otlp_http/newrelic]
  3. ConfigMapを再適用し、コレクターのデプロイメントを再起動します。

    bash
    $
    kubectl apply -f rendered/deployment-configmap.yaml -n newrelic
    $
    kubectl rollout restart deployment -n newrelic

データを検索する

  1. one.newrelic.com > All capabilities > All entitiesに移動します。

  2. クラスタ名を検索します。

  3. Linkerdエンティティを選択して、組み込みダッシュボードを開きます。

    組み込みダッシュボードは、リクエスト率、レイテンシp50/p95/p99、成功率、TCP接続、mTLS証明書ステータス、コントロールプレーンのヘルス、およびメッシュ化されたポッドのインベントリをカバーします。詳細については、Linkerdデータの検索ドキュメントを参照してください。

OpenTelemetryを使用したLinkerdディストリビューティッド(分散)トレーシング

メッシュスパンをAPMのトレースと関連付けるには、プロキシのトレースエクスポートを有効にし、アプリケーションのポッドを計装してください。

Linkerdプロキシログを収集する

オプションで

linkerd-proxy

サイドカーコンテナのログを収集します。

メトリクスリファレンス

OTel Collectorによって収集されるLinkerdメトリクスとリソース属性の完全なリスト。

Copyright © 2026 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.