宣言的設定が安定版になりました!

何が起きたのか

宣言的設定仕様の主要な部分が安定版としてマークされました。 以下が含まれます。

  • opentelemetry-configuration で定義されたデータモデルの JSON スキーマ。 安定版 1.0.0 がリリースされました。
  • ファイルにおけるデータモデルの YAML 表現 (仕様リンク)
  • データモデルのインメモリ表現 (仕様リンク)
  • YAML マッピングノードの汎用表現 ConfigProperties (仕様リンク)
  • データモデル内でカスタムプラグインコンポーネントを参照するための仕組み PluginComponentProvider (仕様リンク)
  • YAML ファイルを解析して SDK コンポーネントをインスタンス化するための SDK 操作 Parse と Create (仕様リンク)
  • 宣言的設定を使用することを指示し、設定ファイルのパスを指定するための標準環境変数 OTEL_CONFIG_FILE (仕様リンク)

言語実装の状況は

現時点では、以下の5つの言語で実装が利用可能です。

  • C++
  • Go
  • Java
  • JS
  • PHP

.NET と Python については開発が進行中です。

さらに、Go の実装は Collector の内部テレメトリーの設定にも活用されています。

今後、実装状況は以下のリソースで追跡できます。

これはあなたにとって何を意味するのか

言語実装が進むにつれて、さまざまな言語で OpenTelemetry を一貫して設定する能力が向上します。 加えて、新しい設定モデルは、現在サポートされている環境変数を超えるオプションを指定するための、はるかに豊かな言語を提供します。 これらは、設定ワーキンググループが当初から掲げていた2つの目標でした。

言語実装は仕様とは異なるタイムラインで安定化しますが、間もなく実現するはずです。 使用している言語にまだ実装がない場合や、実装したい、あるいは実装してほしい機能がある場合は、opentelemetry-configuration でイシューを作成してお知らせください! ぜひご意見をお聞かせください。

使い方の詳細については、該当する言語のドキュメントを参照してください。 ドキュメントがまだ存在しない場合は、opentelemetry.io でイシューを作成してリクエストしてください!

特定の言語実装がまだ安定版と宣言されていなくても、ユーザー向けの部分はより早く安定する可能性があります。 安定したユーザー体験にとって最も重要なのは、スキーマの安定化です。

次のステップ

作業はここで終わりではありませんが、焦点は移ります。

  • スキーマで新しい概念のモデル化を続け、対応する仕様の概念が安定するにつれて既存の型を安定化させます。
  • 仕様の提案プロセスを「宣言的設定ファースト」に調整します。 これは、SDK に機能が提案される際に、対応する宣言的設定の型やプロパティも一緒に提案されるべきであることを意味します。 宣言的設定スキーマは SDK のユーザー体験の重要な部分であり、設計プロセスの早い段階で考慮されるべきです。
  • 相互運用性に優れない環境変数を非推奨にします。 非推奨は削除を意味するものではありませんが、宣言的設定が推奨される方法であり、投資先であることを示したいと考えています。 (トラッキングイシュー)
  • さらに多くの言語が宣言的設定を実装する必要があります! 仕様とデータモデルが安定した今、実装しない理由はありません。
  • 計装を設定するための宣言的設定の API 部分(すなわち ConfigProvider)は、今回の初期安定化のスコープ外です。 より多くの言語でプロトタイプを構築する必要があります。
  • 動的設定のストーリー、すなわち実行時にテレメトリーをどのように変更するかについてです。 (テレメトリーポリシー OTEP)

感謝

長年にわたるコラボレーションを通じてこれを実現してくれた、すべての素晴らしいコントリビューターに心から感謝します。 特に最初から関わってくれた方々に感謝を述べたいと思います。 これほど時間と労力がかかることを事前に知っていたら、始めていたかどうかわかりません😅! 以下にリストした方々の他にも、実装、レビュー、その他の方法で貢献してくれた方々がいることを承知しています。