長い属性値に遭遇した場合、OTLP 取り込み検証ロジックを緩めるように調整しています。
New Relic OTLP エンドポイントにはさまざまな属性制限があります。現在、4095 文字の長さ制限を超える文字列プロパティを持つ OTLP スパン、メトリクス、またはトレースNew Relicに送信すると、 NrIntegrationErrorが生成され、レコード全体が削除されます。
これは、データが欠落する最も一般的な原因です。幸いなことに、簡単な解決策があります。
この制限に違反するレコードを削除する代わりに、長い属性を 4095 文字に切り捨てるだけです。
この変更は2025 年 6 月 2 日に展開される予定です。
これは私にどのような影響を与えるでしょうか
これは、ほぼすべてのケースにおいて歓迎すべき救済策となると考えています。特に、多数の個別のチームによって管理される多数のデプロイメントがある環境では、欠落したデータを追跡して診断するのは困難です。この変更により、New Relic OTLP エンドポイントは「送信したものを保存する」という当社の理念をより適切に体現し、よくある落とし穴が 1 つ減ります。
ただし、New Relic の使用量ベースの価格設定モデルを考慮すると、この変更により、制限を超えたために以前は削除されていたレコードが保存され、アカウントのデータ使用量に加算されることになります。
属性制限に関する OTLP エンドポイントのドキュメントに従っている場合は、何もする必要はありません。属性制限に準拠するということは、現在データが削除されていないことを意味し、したがって追加のデータは保存されません。
属性の長さ制限を超えたためにアカウント内のデータが現在削除されているかどうかを確認するには、次の NRQL クエリを実行します。
FROM NrIntegrationError SELECT * WHERE message like 'One or more OTLP data point(s) was dropped because the length of an attribute value was over the limit.
このクエリが結果を返す場合、使用量が変更され、それに応じて課金も変更される可能性があります。正確な金額は、レコードが制限に違反する頻度によって異なります。発生する可能性のある追加のデータ使用量を相殺する方法については、 「軽減策」を参照してください。
緩和
OpenTelemetryの中核となる価値提案の一部は、テレメトリーデータ パイプラインを制御するツールを提供することにあります。 そのため、データ使用量の変化を緩和するのに役立つさまざまなツールが利用可能です。詳細については、 「OpenTelemetry データ取り込みボリュームの管理」を参照してください。ここでは、特にいくつかの戦略が関連しています。
長い属性を切り捨てる
コレクター変換プロセッサとtruncate_allエディターを活用して、 ここで示されているように、すべての属性を既知の制限まで切り捨てます。これは、この変更後に New Relic OTLP エンドポイントが実行する動作です。ただし、この手法を利用して、New Relic プラットフォームの制限よりも低い制限を設定することで、使用量の変化を相殺することができます。たとえば、オブザーバビリティのユースケースで最初の 1,000 文字だけが必要だと思われる場合は、制限を 1,000 に設定できます。
transform: trace_statements: - truncate_all(span.attributes, 4095) - truncate_all(resource.attributes, 4095) log_statements: - truncate_all(log.attributes, 4095) - truncate_all(resource.attributes, 4095) metric_statements: - truncate_all(datapoint.attributes, 4095) - truncate_all(resource.attributes, 4095)
問題のある属性を削除する
コレクター変換プロセッサとdelete_keyエディターを活用して、価値のない属性を削除します。
transform: trace_statements: - delete_key(span.attributes, "attribute.key.to.drop") log_statements: - delete_key(log.attributes, "attribute.key.to.drop") metric_statements: - delete_key(datapoint.attributes, "attribute.key.to.drop")
特に長く、そのため使用量に大きく貢献している属性キーや、短いが通常は役に立たない属性キーを削除することを選択できます。 参考までに、長さ制限に違反する最も一般的な 10 個の属性を次のリストにまとめます。
exception.stactrace
other
- OpenTelemetryセマンティック規約で定義されていないカスタムアトリビュートの包括的なものdb.statement
process.command_line
graphql.document
db.operation
db.query.text
http.url
exception.message
http.target
サンプリングでレコード数を減らす
ここで説明したいずれかの戦略を使用してサンプリング レートを調整し、追加データをオフセットします。