ゲートウェイがエージェントのテレメトリーデータを処理できるようにするには、データを直接New Relicにルーティングするのではなく、ゲートウェイクラスタにルーティングするようにエージェントを再設定します。その方法はエージェントのタイプによって異なります:New Relic APMエージェントはNEW_RELIC_HOSTを使用し、OpenTelemetryソースはOTLPエクスポーター設定を使用し、ログフォワーダーは独自の出力プラグイン設定を使用します。以下のセクションでは、各エージェントのタイプについて説明します。すべての例で、クラスタローカルのゲートウェイエンドポイントを使用しています。エージェントがクラスタの外部で実行されている場合は、実際のエンドポイントに置き換えてください。
New Relic APMエージェント
NEW_RELIC_HOST APM専用であり、OpenTelemetryソース、infrastructureエージェント、またはログフォワーダーには影響しません。ゲートウェイエンドポイントはHTTPS経由で到達可能である必要があります。そのため、APMエージェントはゲートウェイポッドに直接接続するのではなく、クラスタ内のリバースプロキシ(NGINXまたはKong)、またはクラスタ外のALBを介して接続します。
以下の例は、Node.jsエージェントの設定ファイルを示しています:
'use strict'/** * New Relic agent configuration. * * See lib/config/default.js in the agent distribution for a more complete * description of configuration variables and their potential values. */exports.config = { /** * Array of application names. */ app_name: ['My Application'], /** * Your New Relic Host endpoint. */ NEW_RELIC_HOST: 'GATEWAY_DNS_ENDPOINT_HERE', /** * Your New Relic license key. */ license_key: 'license key here', logging: { /** * Level at which to log. 'trace' is most useful to New Relic when diagnosing * issues with the agent, 'info' and higher will impose the least overhead on * production applications. */ level: 'info' }, /** * When true, all request headers except for those listed in attributes.exclude * will be captured for all traces, unless otherwise specified in a destination's * attributes include/exclude lists. */ allow_all_headers: true, attributes: { /** * Prefix of attributes to exclude from all destinations. Allows * as wildcard * at end. * * NOTE: If excluding headers, they must be in camelCase form to be filtered. * * @name NEW_RELIC_ATTRIBUTES_EXCLUDE */ exclude: [ 'request.headers.cookie', 'request.headers.authorization', 'request.headers.proxyAuthorization', 'request.headers.setCookie*', 'request.headers.x*', 'response.headers.cookie', 'response.headers.authorization', 'response.headers.proxyAuthorization', 'response.headers.setCookie*', 'response.headers.x*' ] }}OpenTelemetry
最小バージョン: opentelemetry-collector-contrib v0.104.0
ゲートウェイのOTLP HTTPポートを指定するotlphttpエクスポーターを使用してください。この設定をKubernetes ConfigMapとしてデプロイしてください:
exporters: otlphttp: endpoint: http://pipeline-control-gateway.newrelic.svc.cluster.local:4318 tls: insecure: true
service: pipelines: traces: exporters: [otlphttp] metrics: exporters: [otlphttp] logs: exporters: [otlphttp]重要
otlpではなく、otlphttpエクスポーターを使用してください。Helmチャートは内部でotlpをotlp_grpcに名前変更しますが、これはこのコレクターバージョンでは無効です。
eBPF自動アタッチエージェント
valuesファイルにcustomOtlpEndpointを設定して、OTLP gRPC経由でテレメトリーを送信するようにeBPF APM自動アタッチエージェントを構成します:
customOtlpEndpoint: "pipeline-control-gateway.newrelic.svc.cluster.local:4317"customOtlpEndpointTlsEnabled: falsereportLogs: "true"これにより、メトリクスとログの両方が、ポート4317のゲートウェイのOTLP gRPCレシーバーを介してルーティングされます。接続はクラスタ内にとどまるため、TLSは無効になっています。
インフラストラクチャー・エージェント
最小バージョン:v1.62.0
infrastructureエージェントには、ゲートウェイ経由でルーティングするものに応じて、2つの異なる設定パスがあります:
- すべてのテレメトリー(メトリクス、イベント、インベントリ、およびログ): Helm値で
collector_urlとmetric_urlを使用します。これにより、エージェントが収集するすべてのデータがゲートウェイ経由でルーティングされます。 - ログのみ:
newrelic-infra.ymlでlogging_endpointを使用します。これにより、ログ転送のみがゲートウェイを介してルーティングされ、他のテレメトリーは引き続き直接New Relicに送信されます。
すべてのテレメトリーをゲートウェイ経由でルーティングする
Helmのvaluesにcollector_urlとmetric_urlを設定します:
newrelic-infrastructure: common: agentConfig: collector_url: "http://pipeline-control-gateway.newrelic.svc.cluster.local" metric_url: "http://pipeline-control-gateway.newrelic.svc.cluster.local"ログのみをゲートウェイ経由でルーティングする
/etc/newrelic-infra.ymlにlogging_endpointを設定し、ログ転送を有効にします:
license_key: YOUR_LICENSE_KEYlogging_endpoint: http://pipeline-control-gateway.newrelic.svc.cluster.local/log/v1log: forward: trueクラスタローカルエンドポイントにはhttp://を使用します。cert-managerがデプロイされたクラスタ内のリバースプロキシ(NGINXまたはKong)経由でルーティングする場合にのみhttps://を使用します。
次に、転送するログファイルを/etc/newrelic-infra/logging.d/logging.ymlで定義します:
logs: - name: my-app-logs file: /var/log/my-app.log変更を適用するには、Infrastructureエージェントを再起動します。
互換性マトリックス: サポートされているエージェントとバージョン
次の表に、ゲートウェイでの使用がサポートされているNew Relic APMエージェント、インフラストラクチャエージェント、およびログコレクターを示します。 ゲートウェイ機能のサポートは、 New Relic の一般的なサポート終了 (EOL) ポリシーや、該当するエージェント固有の EOL ポリシーを上書きしないことに注意してください。
エージェントの種類/言語 | 利用可能なバージョン |
|---|---|
New Relic APMエージェント | 以下の言語固有のバージョンを参照してください。 |
8.17.438以降 | |
2.2.0以降 | |
4.9.0以降 | |
6.10.0以降 | |
10.0.0以降 | |
4.10.0以降 | |
6.1.0そしてその後 | |
1.62.0以降 | |
v3.33.2以降 | |
2.3.0以降 | |
opentelemetry-collector-contrib v0.104.0以降 | |
NA |
リストされているバージョンは、各言語で利用可能な範囲を代表しています。詳細なバージョン情報については、特定のエージェントのドキュメントを参照してください。