From bf217941adcf2fca313b4adf3b05e9918da22ef6 Mon Sep 17 00:00:00 2001 From: Emily S Date: Tue, 9 Jul 2024 08:44:10 +0200 Subject: [PATCH 01/11] Add ruby and python elasticsearch client integrations (#4808) Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com> --- data/ecosystem/integrations.yaml | 14 ++++++++++++++ static/refcache.json | 16 ++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/data/ecosystem/integrations.yaml b/data/ecosystem/integrations.yaml index f3ad515e276d..d231f8456fd0 100644 --- a/data/ecosystem/integrations.yaml +++ b/data/ecosystem/integrations.yaml @@ -24,6 +24,20 @@ native: true # Elasticsearch Java API Client provides a native integration of the OpenTelemetry API oss: true cncf: false +- name: Elasticsearch Python Client + url: https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/index.html + docsUrl: https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/opentelemetry.html + components: [Python] + native: true # Elasticsearch Python Client provides a native integration of the OpenTelemetry API + oss: true + cncf: false +- name: Elasticsearch Ruby Client + url: https://www.elastic.co/guide/en/elasticsearch/client/ruby-api/current/index.html + docsUrl: https://www.elastic.co/guide/en/elasticsearch/client/ruby-api/current/opentelemetry.html + components: [Ruby] + native: true # Elasticsearch Ruby Client provides a native integration of the OpenTelemetry API + oss: true + cncf: false - name: Kubernetes url: https://kubernetes.io/ docsUrl: https://kubernetes.io/docs/concepts/cluster-administration/system-traces/ diff --git a/static/refcache.json b/static/refcache.json index 3b905b63e401..2d400883bbed 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -8935,6 +8935,22 @@ "StatusCode": 206, "LastSeen": "2024-01-30T15:24:55.301982-05:00" }, + "https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/index.html": { + "StatusCode": 206, + "LastSeen": "2024-07-08T21:34:03.643741439Z" + }, + "https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/opentelemetry.html": { + "StatusCode": 206, + "LastSeen": "2024-07-08T21:33:58.49589695Z" + }, + "https://www.elastic.co/guide/en/elasticsearch/client/ruby-api/current/index.html": { + "StatusCode": 206, + "LastSeen": "2024-07-08T21:34:07.87609097Z" + }, + "https://www.elastic.co/guide/en/elasticsearch/client/ruby-api/current/opentelemetry.html": { + "StatusCode": 206, + "LastSeen": "2024-07-08T21:33:57.931171953Z" + }, "https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html": { "StatusCode": 206, "LastSeen": "2024-01-30T06:06:13.672817-05:00" From f1603fd90f230a13be041477ee69d345b255e97d Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Tue, 9 Jul 2024 09:27:22 +0200 Subject: [PATCH 02/11] add missing java http settings (#4804) Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com> Co-authored-by: Fabrizio Ferri-Benedetti --- .../zero-code/java/agent/configuration.md | 53 ++++++++++++++++--- static/refcache.json | 20 +++++++ 2 files changed, 65 insertions(+), 8 deletions(-) diff --git a/content/en/docs/zero-code/java/agent/configuration.md b/content/en/docs/zero-code/java/agent/configuration.md index ac75cd828e9b..b6d2e918baa8 100644 --- a/content/en/docs/zero-code/java/agent/configuration.md +++ b/content/en/docs/zero-code/java/agent/configuration.md @@ -177,7 +177,9 @@ name="otel.instrumentation.common.db-statement-sanitizer.enabled" default=true %}} Enables the DB statement sanitization. {{% /config_option %}} -### Capturing HTTP request and response headers +### HTTP instrumentation configuration + +#### Capturing HTTP request and response headers You can configure the agent to capture predefined HTTP headers as span attributes, according to the @@ -210,7 +212,7 @@ instrumentations. > **Note**: The property/environment variable names listed in the table are > still experimental, and thus are subject to change. -### Capturing servlet request parameters +#### Capturing servlet request parameters You can configure the agent to capture predefined HTTP request parameter as span attributes for requests that are handled by Servlet API. Use the following @@ -222,6 +224,47 @@ A comma-separated list of request parameter names. {{% /config_option %}} > **Note**: The property/environment variable names listed in the table are > still experimental, and thus are subject to change. +#### Configuring known HTTP methods + +Configures the instrumentation to recognize an alternative set of HTTP request +methods. All other methods will be treated as `_OTHER`. + +{{% config_option +name="otel.instrumentation.http.known-methods" +default="CONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE" +%}} A comma-separated list of known HTTP methods. {{% /config_option %}} + +#### Enabling experimental HTTP telemetry + +You can configure the agent to capture additional experimental HTTP telemetry +data. + +{{% config_option +name="otel.instrumentation.http.client.emit-experimental-telemetry" +default=false +%}} Enables the experimental HTTP client telemetry. {{% /config_option %}} + +{{% config_option name="otel.instrumentation.http.server.emit-experimental-telemetry" +default=false +%}} +Enables the experimental HTTP server telemetry. {{% /config_option %}} + +For client and server spans, the following attributes are added: + +- `http.request.body.size` and `http.response.body.size`: The size of the + request and response bodies, respectively. + +For client metrics, the following metrics are created: + +- [http.client.request.body.size](https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpclientrequestbodysize) +- [http.client.response.body.size](https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpclientresponsebodysize) + +For server metrics, the following metrics are created: + +- [http.server.active_requests](https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserveractive_requests) +- [http.server.request.body.size](https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserverrequestbodysize) +- [http.server.response.body.size](https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserverresponsebodysize) + ### Capturing consumer message receive telemetry in messaging instrumentations You can configure the agent to capture the consumer message receive telemetry in @@ -253,12 +296,6 @@ and > attributes. You must carefully evaluate each attribute's privacy implications > before enabling the collection of the data. -{{% config_option -name="otel.instrumentation.common.enduser.enabled" -default=false -%}} Common flag for enabling/disabling enduser attributes. -{{% /config_option %}} - {{% config_option name="otel.instrumentation.common.enduser.id.enabled" default=false diff --git a/static/refcache.json b/static/refcache.json index 2d400883bbed..a13d83ddf83f 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -6523,6 +6523,26 @@ "StatusCode": 206, "LastSeen": "2024-06-04T17:29:59.855130203+02:00" }, + "https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpclientrequestbodysize": { + "StatusCode": 206, + "LastSeen": "2024-07-09T06:50:49.55383228Z" + }, + "https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpclientresponsebodysize": { + "StatusCode": 206, + "LastSeen": "2024-07-09T06:50:52.813684131Z" + }, + "https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserveractive_requests": { + "StatusCode": 206, + "LastSeen": "2024-07-09T06:50:54.753346045Z" + }, + "https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserverrequestbodysize": { + "StatusCode": 206, + "LastSeen": "2024-07-09T06:50:57.504859297Z" + }, + "https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserverresponsebodysize": { + "StatusCode": 206, + "LastSeen": "2024-07-09T06:50:57.948143989Z" + }, "https://opentelemetry.io/docs/specs/semconv/resource/": { "StatusCode": 206, "LastSeen": "2024-06-04T17:30:01.040485926+02:00" From b9fcde2d21aaa050b713d6756ac35c1031766bbd Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri-Benedetti Date: Tue, 9 Jul 2024 10:07:57 +0200 Subject: [PATCH 03/11] [PHP] Edit propagation doc (#4802) --- content/en/docs/languages/php/propagation.md | 56 ++++++++++++-------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/content/en/docs/languages/php/propagation.md b/content/en/docs/languages/php/propagation.md index 2f72ebb6faff..c5c55fe6162f 100644 --- a/content/en/docs/languages/php/propagation.md +++ b/content/en/docs/languages/php/propagation.md @@ -4,8 +4,10 @@ description: Context propagation for the PHP API weight: 60 --- +{{% docs/languages/propagation php %}} + Propagation is the mechanism that moves data between services and processes. -Although not limited to tracing, it is what allows traces to build causal +Although not limited to tracing, propagation allows traces to build causal information about a system across services that are arbitrarily distributed across process and network boundaries. @@ -13,21 +15,24 @@ OpenTelemetry provides a text-based approach to propagate context to remote services using the [W3C Trace Context](https://www.w3.org/TR/trace-context/) HTTP headers. -## Context propagation with frameworks and libraries +## Automatic context propagation -Auto-instrumentation exists for some popular PHP frameworks (eg. Symfony, -Laravel, Slim) and HTTP libraries propagate context for incoming and outgoing +Auto-instrumentation exists for some popular PHP frameworks, such as Symfony, +Laravel, or Slim. HTTP libraries propagate context for incoming and outgoing HTTP requests. -**We highly recommend that you use auto-instrumentation or instrumentation -libraries to propagate context**. Although it is possible to propagate context -manually, the PHP auto-instrumentation and instrumentation libraries are -well-tested and easier to use. +{{% alert title="Note" %}} + +Use auto-instrumentation or instrumentation libraries to propagate context. +Although you can propagate context manually, the PHP auto-instrumentation and +instrumentation libraries are well-tested and easier to use. + +{{% /alert %}} -### Incoming +### Incoming requests Auto-instrumentation for frameworks which implement the -[PSR-15](https://www.php-fig.org/psr/psr-15/) `RequestHandlerInterface` will +[PSR-15](https://www.php-fig.org/psr/psr-15/) `RequestHandlerInterface` automatically extract W3C tracecontext headers, create a root span, and set a remote parent for the root span. @@ -35,26 +40,26 @@ remote parent for the root span. composer require open-telemetry/opentelemetry-auto-psr15 ``` -### Outgoing +### Outgoing requests -[PSR-18](https://www.php-fig.org/psr/psr-18/) auto-instrumentation will -automatically apply W3C tracecontext headers to outgoing HTTP requests for any -library which implements the PSR-18 interface. +[PSR-18](https://www.php-fig.org/psr/psr-18/) auto-instrumentation automatically +apply W3C tracecontext headers to outgoing HTTP requests for any library which +implements the PSR-18 interface. ```shell open-telemetry/opentelemetry-auto-psr18 ``` -## Manual W3C Trace Context Propagation +## Manual context propagation -In some cases, it is not possible to propagate context with an instrumentation -library. There may not be an instrumentation library that matches a library -you're using to have services communicate with one another. Or you many have +In some cases, it is not possible to propagate context using an instrumentation +library. There might not be an instrumentation library that matches a library +you're using to have services communicate with each other. Or you might have requirements that instrumentation libraries cannot fulfill, even if they exist. -When you must propagate context manually, you can use the context API. +When you must propagate context manually, use the context API. -The following presents an example of an outgoing HTTP request: +The following snippet shows an example of an outgoing HTTP request: ```php $request = new Request('GET', 'http://localhost:8080/resource'); @@ -74,9 +79,9 @@ try { } ``` -Similarly, the text-based approach can be used to read the W3C Trace Context -from incoming requests. The following presents an example of processing an -incoming HTTP request: +Similarly, use the text-based approach to read the W3C Trace Context from +incoming requests. The following presents an example of processing an incoming +HTTP request: ```php $request = ServerRequestCreator::createFromGlobals(); @@ -94,3 +99,8 @@ try { $scope->detach(); } ``` + +## Next steps + +To learn more about propagation, read the +[Propagators API specification](/docs/specs/otel/context/api-propagators/). From b70874bc087a32bd384f1431b7d1dda780c9dc24 Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Tue, 9 Jul 2024 19:54:20 -0400 Subject: [PATCH 04/11] Fix links in Java agent config (#4815) --- content/en/docs/zero-code/java/agent/configuration.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/en/docs/zero-code/java/agent/configuration.md b/content/en/docs/zero-code/java/agent/configuration.md index b6d2e918baa8..83682b41f79d 100644 --- a/content/en/docs/zero-code/java/agent/configuration.md +++ b/content/en/docs/zero-code/java/agent/configuration.md @@ -256,14 +256,14 @@ For client and server spans, the following attributes are added: For client metrics, the following metrics are created: -- [http.client.request.body.size](https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpclientrequestbodysize) -- [http.client.response.body.size](https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpclientresponsebodysize) +- [http.client.request.body.size](/docs/specs/semconv/http/http-metrics/#metric-httpclientrequestbodysize) +- [http.client.response.body.size](/docs/specs/semconv/http/http-metrics/#metric-httpclientresponsebodysize) For server metrics, the following metrics are created: -- [http.server.active_requests](https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserveractive_requests) -- [http.server.request.body.size](https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserverrequestbodysize) -- [http.server.response.body.size](https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserverresponsebodysize) +- [http.server.active_requests](/docs/specs/semconv/http/http-metrics/#metric-httpserveractive_requests) +- [http.server.request.body.size](/docs/specs/semconv/http/http-metrics/#metric-httpserverrequestbodysize) +- [http.server.response.body.size](/docs/specs/semconv/http/http-metrics/#metric-httpserverresponsebodysize) ### Capturing consumer message receive telemetry in messaging instrumentations From b60fb97ad8422fc800dbb305a5eda7986f7a39a0 Mon Sep 17 00:00:00 2001 From: OpenTelemetry Bot <107717825+opentelemetrybot@users.noreply.github.com> Date: Wed, 10 Jul 2024 01:55:33 +0200 Subject: [PATCH 05/11] Update semantic-conventions-java version to v1.26.0 (#4807) --- content/en/docs/languages/java/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/languages/java/_index.md b/content/en/docs/languages/java/_index.md index 6a0565723499..00959f5e2080 100644 --- a/content/en/docs/languages/java/_index.md +++ b/content/en/docs/languages/java/_index.md @@ -8,7 +8,7 @@ cascade: vers: instrumentation: 2.5.0 otel: 1.40.0 - semconv: 1.25.0 + semconv: 1.26.0 weight: 18 --- From 08799298a05d17a6a659821bfe1c9d994e4ceba9 Mon Sep 17 00:00:00 2001 From: Yoshi Yamaguchi Date: Wed, 10 Jul 2024 09:06:48 +0900 Subject: [PATCH 06/11] [ja] add Japanese translation of distribution and glossary (#4767) --- content/ja/docs/concepts/distributions.md | 82 ++++++ content/ja/docs/concepts/glossary.md | 339 ++++++++++++++++++++++ 2 files changed, 421 insertions(+) create mode 100644 content/ja/docs/concepts/distributions.md create mode 100644 content/ja/docs/concepts/glossary.md diff --git a/content/ja/docs/concepts/distributions.md b/content/ja/docs/concepts/distributions.md new file mode 100644 index 000000000000..ac4625c18e69 --- /dev/null +++ b/content/ja/docs/concepts/distributions.md @@ -0,0 +1,82 @@ +--- +title: ディストリビューション +description: フォークと混同されがちですが、ディストリビューションは、OpenTelemetryコンポーネントのカスタマイズバージョンです。 +weight: 190 +default_lang_commit: 21d6bf0 +--- + +OpenTelemetryプロジェクトは、複数の[シグナル](../signals)をサポートする複数の[コンポーネント](../components)から構成されています。 +OpenTelemetryの参照実装は以下の通りです。 + +- [言語固有の計装ライブラリ](../instrumentation) +- [コレクターのバイナリ](/docs/concepts/components/#collector) + +どの参照実装も、ディストリビューションとしてカスタマイズできます。 + +## ディストリビューションとは何か + +ディストリビューションとは、OpenTelemetryコンポーネントのカスタマイズバージョンです。 +ディストリビューションは、アップストリームのOpenTelemetryリポジトリに、いくつかのカスタマイズを施したラッパーです。 +ディストリビューションをフォークと混同しないでください。 + +ディストリビューションのカスタマイズには、以下のようなものがあります。 + +- 特定のバックエンドやベンダーの使用を容易にしたり、カスタマイズしたりするスクリプト +- バックエンド、ベンダー、エンドユーザーに必要なデフォルト設定の変更 +- ベンダーまたはエンドユーザー固有の追加パッケージングオプション +- OpenTelemetryが提供する以上のテスト、パフォーマンス、セキュリティカバレッジ +- OpenTelemetryが提供する以上の追加機能 +- OpenTelemetryが提供するより少ない機能 + +ディストリビューションは大まかに以下のカテゴリーに分類されます。 + +- **"ピュア(Pure)":** これらのディストリビューションは、アップストリームと同じ機能を提供し、100%互換性があります。 + カスタマイズは通常、使いやすさやパッケージングを向上させる形で行われます。 + これらのカスタマイズは、バックエンド、ベンダー、またはエンドユーザー固有のものです。 +- **"プラス(Plus)":** これらのディストリビューションは、アップストリームの上に、追加コンポーネントによって追加機能を提供します。 + 例としては、OpenTelemetryプロジェクトにアップストリームで提供して計装ライブラリやベンダーのエクスポーターなどがあります。 +- **"マイナス(Minus)":** これらのディストリビューションは、アップストリームからの機能のサブセットを提供します。 + この例としては、OpenTelemetryコレクタープロジェクトにある計装ライブラリやレシーバー、プロセッサー、エクスポーター、拡張機能の削除などがあります。 + このようなディストリビューションは、サポートとセキュリティへの配慮を高めるために提供されることがあります。 + +## 誰がディストリビューションを作成できますか + +誰でもディストリビューションを作成できます。 +今日、いくつかの[ベンダー](/ecosystem/vendors/)が[ディストリビューション](/ecosystem/distributions/)を提供しています。 +くわえて、エンドユーザーは[レジストリ](/ecosystem/registry/)にあるコンポーネントのうち、OpenTelemetryプロジェクトにアップストリームされていないものを使いたい場合、ディストリビューションの作成を検討できます。 + +## コントリビューターかディストリビューションか + +この先を読み、あなた自身のディストリビューションを作成する方法を学ぶ前に、OpenTelemetryコンポーネントにあなたが追加しようと思うものが、誰にとっても有益で、それゆえ、参照実装に含まれるべきかどうか、検討してみてください。 + +- 「使いやすさ」のためのスクリプトは一般化できるか +- デフォルト設定への変更は、すべての人にとってより良い選択肢となり得るのか +- 追加のパッケージングのオプションは本当に特別なものか +- テスト、パフォーマンス、セキュリティのカバレッジは、参照実装でもうまくいくか +- あなたの追加機能が標準の一部となり得るかどうか、コミュニティに確認したか + +## 独自のディストリビューションを作成する + +### コレクター + +独自のディストリビューションを作成する方法については、[『独自のOpenTelemetryコレクターディストリビューションの構築』](https://medium.com/p/42337e994b63)のブログ記事を参照してください。 + +独自のディストリビューションを構築する場合、[OpenTelemetry Collector Builder](https://github.com/open-telemetry/opentelemetry-collector/tree/main/cmd/builder)が良い出発点になるかもしれません。 + +### 言語固有の計装ライブラリ + +計装ライブラリをカスタマイズするための言語固有の拡張メカニズムがあります。 + +- [Javaエージェント](/docs/zero-code/java/agent/extensions) + +## ガイドラインを守ろう + +ロゴや名称といったOpenTelemetryプロジェクトの付随物を配布物に使用する際は、[OpenTelemetry Marketing Guidelines for Contributing Organizations][guidelines]に沿っていることを確認してください。 + +OpenTelemetryプロジェクトは現時点ではディストリビューションを認証していません。 +将来、OpenTelemetryはKubernetesプロジェクトと同様にディストリビューションやパートナーを認証するかもしれません。 +ディストリビューションを評価する際には、そのディストリビューションを使用することがベンダーロックインにならないことを確認してください。 + +> ディストリビューションのサポートは、OpenTelemetryの作者ではなく、ディストリビューションの作者から提供されます。 + +[guidelines]: https://github.com/open-telemetry/community/blob/main/marketing-guidelines.md diff --git a/content/ja/docs/concepts/glossary.md b/content/ja/docs/concepts/glossary.md new file mode 100644 index 000000000000..c6072ce2c643 --- /dev/null +++ b/content/ja/docs/concepts/glossary.md @@ -0,0 +1,339 @@ +--- +title: 用語集 +description: OpenTelemetryプロジェクトで使用されている用語に馴染みがあるものもないものもあるでしょう。 +weight: 200 +default_lang_commit: 21d6bf0 +--- + +OpenTelemetryプロジェクトは、あなたが馴染みのない用語を使っているかもしれません。 +また、他のプロジェクトとは異なる方法で用語を定義しています。 +このページでは、OpenTelemetryプロジェクトで使われている用語とその意味を説明します。 + +## 一般用語 + +### **集約(集計、アグリゲーション)** {#aggregation} + +複数の測定値を組み合わせて、プログラム実行中のある時間間隔に行われた測定値に関する正確な統計値または推定統計値にするプロセス。 +[メトリクス](#metric)の[データソース](#data-source) で使用されます。 + +### **API** + +アプリケーション・プログラミング・インターフェース。 +OpenTelemetryプロジェクトでは、[データソース](#data-source)ごとにどのようにテレメトリーデータを生成するかを定義するために使用されます。 + +### **アプリケーション** {#application} + +エンドユーザーや他のアプリケーションのために設計された1つ以上の[サービス](#service)。 + +### **APM** + +アプリケーション・パフォーマンス・モニタリングは、ソフトウェアアプリケーション、そのパフォーマンス(スピード、信頼性、可用性など)を監視し、問題を検出し、根本原因を見つけるためのアラートとツールを提供することを指します。 + +### **属性(アトリビュート)** {#attribute} + +[メタデータ](#metadata)のOpenTelemetry用語。 +テレメトリーを生成するエンティティにキーバリュー情報を追加します。 +[シグナル](#signal)と[リソース](#resource) にまたがって使用されます。 +[属性仕様][attribute]を参照のこと。 + +### **自動計装** + +エンドユーザーがアプリケーションのソースコードを変更する必要のないテレメトリー収集方法を指します。 +方法はプログラミング言語によって異なり、バイトコードインジェクションやモンキーパッチがその例です。 + +### **バゲッジ** {#baggage} + +イベントとサービスの因果関係を確立するための[メタデータ](#metadata)を伝播するメカニズム。 +[バゲッジ仕様][baggage]を参照のこと。 + +### **クライアントライブラリ** + +[計装済みライブラリ](#instrumented-library). + +### **クライアントサイドアプリケーション** + +[アプリケーション](#application)のコンポーネントで、プライベートなインフラストラクチャ内で実行されておらず、通常エンドユーザーが直接使用するもの。 +クライアントサイドアプリの例としては、ブラウザアプリ、モバイルアプリ、IoTデバイス上で動作するアプリなどがあります。 + +### **コレクター** {#collector} + +テレメトリーデータの受信、処理、エクスポート方法に関するベンダー非依存の実装。 +エージェントまたはゲートウェイとしてデプロイ可能な単一のバイナリ。 + +別名OpenTelemetryコレクター。コレクターの詳細は[こちら][collector]を参照してください。 + +### **Contrib** + +いくつかの[計装ライブラリ](#instrumentation-library)と[コレクター](#collector)はコア機能のセットと、ベンダーの `エクスポーター` を含む非コア機能専用のcontribリポジトリを提供しています。 + +### **コンテキスト伝搬(プロパゲーション)** + +すべての[データソース](#data-source)が、[トランザクション](#transaction)の寿命にわたって状態を保存したりデータにアクセスしたりするための基盤となるコンテキストメカニズムを共有できるようにします。 +[コンテキスト伝播仕様][context propagation]を参照。 + +### **DAG** {#dag} + +[有向非巡回グラフ(Directed Acyclic Graph)][dag]のこと。 + +### **データソース** {#data-source} + +[シグナル](#signal)を参照のこと。 + +### **次元(ディメンション)** {#dimension} + +[メトリクス](#metric)で特に使われる用語。[属性](#attribute)を参照のこと。 + +### **分散トレース** {#distributed-tracing} + +[アプリケーション](#application)を構成する[サービス](#service)によって処理される、[トレース](#trace)と呼ばれる単一の[リクエスト](#request)の進行を追跡します。 +[分散トレース](#distributed-tracing)は、プロセス、ネットワーク、セキュリティの境界を越えます。 + +[分散トレース][distributed tracing]を参照してください。 + +### **ディストリビューション** {#distribution} + +ディストリビューションとは、アップストリームのOpenTelemetryリポジトリのラッパーで、いくつかのカスタマイズが施されています。 +[ディストリビューション][distribution]を参照してください。 + +### **イベント** {#event} + +表現が[データソース](#data-source)に依存するところで起こった何か。 +たとえば、[スパン](#span)。 + +### **エクスポーター** {#exporter} + +テレメトリーをコンシューマーに送信する機能を提供します。 +エクスポーターはプッシュベースかプルベースのいずれかになります。 + +### **フィールド** {#field} + +[ログレコード](#log-record)で特に使われる用語。 +[メタデータ](#metadata)は、[属性](#attribute)や[リソース](#resource)などの定義されたフィールドを通して追加できます。 +重大度やトレース情報など、他のフィールドも `Metadata` とみなされるかもしれません。 +[フィールド仕様][field]を参照してください。 + +### **gRPC** + +高性能でオープンソースのユニバーサル [RPC](#rpc) フレームワーク。 +gRPCの詳細は[こちら](https://grpc.io)。 + +### **HTTP** + +[Hypertext Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル)][http]の略。 + +### **計装済みライブラリ** {#instrumented-library} + +テレメトリーシグナル([トレース](#trace)、[メトリクス](#metric)、[ログ](#log))を収集する[ライブラリ](#library)を表します。 +詳細は[こちら][spec-instrumented-lib]参照してください。 + +### **計装ライブラリ** {#instrumentation-library} + +特定の[計装済みライブラリ](#instrumented-library)に計装を提供する[ライブラリ](#library)を表します。 +[計装済みライブラリ](#instrumented-library)と[計装ライブラリ](#instrumentation-library)は、ビルトインのOpenTelemetry計装をしている場合、同一の[ライブラリ](#library)になります。 +[ライブラリ仕様][spec-instrumentation-lib]を参照のこと。 + +### **JSON** + +[JavaScript Object Notation][json]の略。 + +### **ラベル** {#label} + +[メトリクス](#metric)で特に使われる用語。 +[メタデータ](#metadata)を参照。 + +### **言語** + +プログラミング言語のこと。 + +### **ライブラリ** {#library} + +インターフェイスによって呼び出される動作の言語固有のコレクション。 + +### **ログ** {#log} + +[ログレコード](#log-record)の集まりを指すのに使われることもあります。 +また、単一の[ログ記録](#log-record)を指すために[ログ](#log)を使うこともあるので、曖昧になる可能性があります。 +曖昧になる可能性がある場合は、追加の修飾子、たとえば`ログレコード`を使用してください。 +詳細は[ログ][log]を参照してください。 + +### **ログレコード** {#log-record} + +[イベント](#event)の記録。 +通常、[イベント](#event)がいつ起こったかを示すタイムスタンプと、何が起こったか、どこで起こったかなどを示すその他のデータが記録されます。 +詳細は[ログレコード][log record]を参照してください。 + +### **メタデータ** {#metadata} + +たとえば `foo="bar"` のようなキーと値のペアで、テレメトリーを生成するエンティティに追加されます。 +OpenTelemetryはこれらのペアを[属性](#attribute)と呼びます。 +また、[メトリクス](#metric)には[次元](#dimension)と[ラベル](#label)があり、[ログ](#log)には[フィールド](#field)があります。 + +### **メトリクス** {#metric} + +生の測定値または事前定義された集計値のいずれかのデータポイントを、[メタデータ](#metadata)付きの時系列として記録します。 +詳細は[メトリクス][metric]を参照のこと。 + +### **OC** + +[OpenCensus](#opencensus)の略称。 + +### **OpenCensus** + +アプリケーションのメトリクスと分散トレースを収集し、リアルタイムで任意のバックエンドにデータを転送することを可能にする、さまざまな言語用のライブラリのセットです。 +[OpenTelemetryの前身](/docs/what-is-opentelemetry/#history)プロジェクトです。 +詳細は[このサイト][opencensus]を参照のこと。 + +### **OpenTracing** + +分散トレーシングのためのベンダーニュートラルなAPIと計装。 +[OpenTelemetryの前身](/docs/what-is-opentelemetry/#history)プロジェクトです。 +詳細は[このサイト][opentracing]を参照のこと。 + +### **OT** + +[OpenTracing](#opentracing)の略称。 + +### **OTel** + +[OpenTelemetry](/docs/what-is-opentelemetry/)の略称。 + +### **OTelCol** + +[OpenTelemetryコレクター](#collector)の略称。 + +### **OTLP** + +[OpenTelemetryプロトコル](/docs/specs/otlp/)の略称。 + +### **プロパゲーター** {#propagators} + +[スパン](#span)内のスパンコンテキストや[バゲッジ](#baggage)など、テレメトリーデータの特定の部分をシリアライズおよびデシリアライズするために使用します。 +詳細は[プロパゲーター][propagators]を参照してください。 + +### **Proto** + +言語に依存しないインターフェイス型。詳細は[Proto][proto]を参照のこと。 + +### **レシーバー** {#receiver} + +[コレクター](/docs/collector/configuration/#receivers)が使用する用語で、テレメトリーデータの受信方法を定義します。 +レシーバーはプッシュベースとプルベースがあります。 +詳細は[レシーバー][receiver]のページを参照のこと。 + +### **リクエスト** {#request} + +[分散トレース](#distributed-tracing)を参照のこと。 + +### **リソース** {#resource} + +テレメトリーを生成するエンティティに関する情報を[属性](#attribute)として捕捉します。 +たとえば、Kubernetes 上のコンテナで実行されているテレメトリーを生成するプロセスには、プロセス名、ポッド名、名前空間、そして場合によってはデプロイメント名があります。 +これらすべての属性を `Resource` に含めることができます。 + +### **REST** + +[Representational State Transfer][rest]の略称。 + +### **RPC** + +[Remote Procedure Call(リモートプロシージャーコール、遠隔手続き呼び出し)][rpc]の略称。 + +### **サンプリング** {#sampling} + +エクスポートされるデータ量を制御するメカニズム。 +[トレース](#trace) [データソース](#data-source) と共に使われるのが一般的です。 +詳細は[サンプリング][sampling]を参照してください。 + +### **SDK** + +ソフトウェア開発キット(Software Development Kit)の略称。 +OpenTelemetryの[API](#api)を実装する[ライブラリ](#library)を示すテレメトリSDKを指します。 + +### **セマンティック規約** {#semantic-conventions} + +ベンダー非依存のテレメトリーデータを提供するために、[メタデータ](#metadata)の標準的な名前と値を定義します。 + +### **サービス** {#service} + +[アプリケーション](#application)のコンポーネント。 +[サービス](#service)の複数のインスタンスは、通常、高可用性とスケーラビリティのためにデプロイされます。 +[サービス](#service)は複数の場所に配置できます。 + +### **シグナル** {#signal} + +OpenTelemetryにおいては[トレース](#trace)、[メトリクス](#metric)、[ログ](#log)のいずれか。 +シグナルの詳細は[こちら][signals]。 + +### **スパン** {#span} + +[トレース](#trace)内の単一の操作を表します。[スパン][span]を参照のこと。 + +### **スパンリンク** {#span-link} + +スパンリンクは、因果関係のあるスパン間のリンクです。 +詳細は[スパン間のリンク](/docs/specs/otel/overview#links-between-spans)と[リンクの指定](/docs/specs/otel/trace/api#specifying-links)を参照してください。 + +### **仕様** {#specification} + +すべての実装に対する言語横断的な要求と期待を記述しています。 +詳細は[仕様][specification]を参照。 + +### **ステータス** {#status} + +操作の結果。 +通常、エラーが発生したかどうかを示すために使用されます。 +詳細は[ステータス][status]のページを参照。 + +### **タグ** {#tag} + +[メタデータ](#metadata)を参照のこと。 + +### **トレース** {#trace} + +[スパン](#span)の[DAG](#dag)で、[スパン](#span)間のエッジ(辺)は親子関係として定義されます。 +[トレース][trace]を参照のこと。 + +### **トレーサー** {#tracer} + +[スパン](#span)の作成を担当します。詳細は[トレーサー][tracer]を参照。 + +### **トランザクション** {#transaction} + +[分散トレース](#distributed-tracing)を参照のこと。 + +### **zPages** + +外部エクスポーターにかわるプロセス内エクスポーター。 +これを使うと、トレースとメトリクスの情報をバックグラウンドで収集し、集約できます。 +詳細は[zPages][zpages]のドキュメントを参照してください。 + +[baggage]: /docs/specs/otel/baggage/api/ +[attribute]: /docs/specs/otel/common/#attributes +[collector]: /docs/collector +[context propagation]: /docs/specs/otel/overview#context-propagation +[dag]: https://en.wikipedia.org/wiki/Directed_acyclic_graph +[distributed tracing]: /docs/concepts/signals/traces/ +[distribution]: /docs/concepts/distributions/ +[field]: /docs/specs/otel/logs/data-model#field-kinds +[http]: https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol +[json]: https://en.wikipedia.org/wiki/JSON +[log]: /docs/specs/otel/glossary#log +[log record]: /docs/specs/otel/glossary#log-record +[metric]: /docs/concepts/signals/metrics/ +[opencensus]: https://opencensus.io +[opentracing]: https://opentracing.io +[propagators]: /docs/languages/go/instrumentation/#propagators-and-context +[proto]: https://github.com/open-telemetry/opentelemetry-proto +[receiver]: /docs/collector/configuration/#receivers +[rest]: https://en.wikipedia.org/wiki/Representational_state_transfer +[rpc]: https://en.wikipedia.org/wiki/Remote_procedure_call +[sampling]: /docs/specs/otel/trace/sdk#sampling +[signals]: /docs/concepts/signals/ +[span]: /docs/specs/otel/trace/api#span +[spec-instrumentation-lib]: /docs/specs/otel/glossary/#instrumentation-library +[spec-instrumented-lib]: /docs/specs/otel/glossary/#instrumented-library +[specification]: /docs/concepts/components/#specification +[status]: /docs/specs/otel/trace/api#set-status +[trace]: /docs/specs/otel/overview#traces +[tracer]: /docs/specs/otel/trace/api#tracer +[zpages]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/experimental/trace/zpages.md From a7768c5ce270cfb8f18f65548e18a0a40154fb1f Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri-Benedetti Date: Wed, 10 Jul 2024 08:18:15 +0200 Subject: [PATCH 07/11] [Erlang] Review propagation docs (#4801) Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com> --- .../docs/languages/erlang/getting-started.md | 6 ++--- .../en/docs/languages/erlang/propagation.md | 23 +++++++++++++------ content/en/docs/languages/erlang/resources.md | 8 +++---- content/en/docs/languages/js/propagation.md | 2 +- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/content/en/docs/languages/erlang/getting-started.md b/content/en/docs/languages/erlang/getting-started.md index 266ab3ff6d6d..5bb6139a4f1d 100644 --- a/content/en/docs/languages/erlang/getting-started.md +++ b/content/en/docs/languages/erlang/getting-started.md @@ -453,7 +453,7 @@ and the [Zipkin protocol](https://hex.pm/packages/opentelemetry_zipkin). ## Initialization and Configuration Configuration is done through the -[Application environment](https://erlang.org/doc/design_principles/applications.html#configuring-an-application) +[OTP application environment](https://erlang.org/doc/design_principles/applications.html#configuring-an-application) or [OS Environment Variables](/docs/specs/otel/configuration/sdk-environment-variables/). The SDK (`opentelemetry` Application) uses the configuration to initialize a @@ -470,8 +470,8 @@ variety of exporters through its ecosystem, including popular open source tools like Jaeger and Zipkin. To configure OpenTelemetry to use a particular exporter, in this case -`otel_exporter_stdout`, the Application environment for `opentelemetry` must set -the `exporter` for the span processor `otel_batch_processor`, a type of span +`otel_exporter_stdout`, the OTP application environment for `opentelemetry` must +set the `exporter` for the span processor `otel_batch_processor`, a type of span processor that batches up multiple spans over a period of time: {{< tabpane text=true >}} {{% tab Erlang %}} diff --git a/content/en/docs/languages/erlang/propagation.md b/content/en/docs/languages/erlang/propagation.md index edf4fb7c49f4..380506745455 100644 --- a/content/en/docs/languages/erlang/propagation.md +++ b/content/en/docs/languages/erlang/propagation.md @@ -4,7 +4,9 @@ weight: 60 cSpell:ignore: elli --- -## Cross Service Propagators +{{% docs/languages/propagation erlang %}} + +## Automatic context propagation Distributed traces extend beyond a single service, meaning some context must be propagated across services to create the parent-child relationship between @@ -12,18 +14,18 @@ Spans. This requires cross service [_context propagation_](/docs/specs/otel/overview/#context-propagation), a mechanism where identifiers for a Trace are sent to remote processes. -Instrumentation Libraries for HTTP frameworks and servers like +Instrumentation libraries for HTTP frameworks and servers like [Phoenix](https://github.com/open-telemetry/opentelemetry-erlang-contrib/tree/main/instrumentation/opentelemetry_phoenix), [Cowboy](https://github.com/open-telemetry/opentelemetry-erlang-contrib/tree/main/instrumentation/opentelemetry_cowboy), [Elli](https://github.com/open-telemetry/opentelemetry-erlang-contrib/tree/main/instrumentation/opentelemetry_elli) and clients like [Tesla](https://github.com/open-telemetry/opentelemetry-erlang-contrib/tree/main/instrumentation/opentelemetry_tesla) -will automatically inject or extract context using the globally registered +automatically inject or extract context using the globally registered propagators. By default the global propagators used are the W3C [Trace Context](https://w3c.github.io/trace-context/) and [Baggage](https://www.w3.org/TR/baggage/) formats. -These global propagators can be configured by the Application environment +You can configure global propagators using the the OTP application environment variable `text_map_propagators`: {{< tabpane text=true >}} {{% tab Erlang %}} @@ -47,13 +49,15 @@ text_map_propagators: [:baggage, :trace_context], {{% /tab %}} {{< /tabpane >}} -Or through a comma separated list with the environment variable +You can also pass a comma separated list using the environment variable `OTEL_PROPAGATORS`. Both forms of configuration accept the values `trace_context`, `baggage`, [`b3`](https://github.com/openzipkin/b3-propagation) and `b3multi`. -To manually inject or extract context the `otel_propagator_text_map` module can -be used: +## Manual context propagation + +To manually inject or extract context, you can use the +`otel_propagator_text_map` module: {{< tabpane text=true >}} {{% tab Erlang %}} @@ -81,3 +85,8 @@ headers = :otel_propagator_text_map.inject([]) globally registered propagators. To use a specific propagator `otel_propagator_text_map:inject/2` and `otel_propagator_text_map:extract/2` can be used with the first argument being the name of the propagator module to call. + +## Next steps + +To learn more about propagation, read the +[Propagators API specification](/docs/specs/otel/context/api-propagators/). diff --git a/content/en/docs/languages/erlang/resources.md b/content/en/docs/languages/erlang/resources.md index 9e272bda35fe..e5e0caf00547 100644 --- a/content/en/docs/languages/erlang/resources.md +++ b/content/en/docs/languages/erlang/resources.md @@ -15,7 +15,7 @@ cSpell:ignore: behaviour Resource detectors fetch resource attributes from various sources. The default detectors use the OS environment variable `OTEL_RESOURCE_ATTRIBUTES` and the -`opentelemetry` OTP Application environment variable `resource`. +`opentelemetry` OTP application environment variable `resource`. The detectors to use is a list of module names and can be configured in the Application configuration: @@ -49,7 +49,7 @@ indefinitely. The default is 5000 milliseconds and can be set with environment variable `OTEL_RESOURCE_DETECTOR_TIMEOUT` or Application variable `otel_resource_detector_timeout`. -## Adding resources with OS and Application environment variables +## Adding resources with OS and OTP application environment variables With the two default resource detectors enabled you can set resource attributes either with the OS environment variable `OTEL_RESOURCE_ATTRIBUTES`: @@ -58,7 +58,7 @@ either with the OS environment variable `OTEL_RESOURCE_ATTRIBUTES`: OTEL_RESOURCE_ATTRIBUTES="deployment.environment=development" ``` -Alternatively, use the `resource` Application environment under the +Alternatively, use the `resource` OTP application environment under the `opentelemetry` Application configuration of `sys.config` or `runtime.exs`: {{< tabpane text=true >}} {{% tab Erlang %}} @@ -77,7 +77,7 @@ config :opentelemetry, resource: %{deployment: %{environment: "development" }} {{% /tab %}} {{< /tabpane >}} -Resource attributes in the `resource` Application environment variable are +Resource attributes in the `resource` OTP application environment variable are flattened and combined with `.`, so `#{deployment => #{environment => <<"development">> }` is the same as `#{'deployment.environment' => <<"development">>}`. diff --git a/content/en/docs/languages/js/propagation.md b/content/en/docs/languages/js/propagation.md index ac27c08351a3..51f0795676b4 100644 --- a/content/en/docs/languages/js/propagation.md +++ b/content/en/docs/languages/js/propagation.md @@ -7,7 +7,7 @@ cSpell:ignore: rolldice {{% docs/languages/propagation js %}} -## Automatic context propagations +## Automatic context propagation [Instrumentation libraries](../libraries/) like [`@opentelemetry/instrumentation-http`](https://www.npmjs.com/package/@opentelemetry/instrumentation-http) From ad4aa9e3609075d37c842289788c75d51ddd4eef Mon Sep 17 00:00:00 2001 From: OpenTelemetry Bot <107717825+opentelemetrybot@users.noreply.github.com> Date: Wed, 10 Jul 2024 08:39:18 +0200 Subject: [PATCH 08/11] Auto-update registry versions (1c9e536a81c2e9933ab01f746cb981899eea852c) (#4818) Co-authored-by: Fabrizio Ferri-Benedetti --- data/registry/exporter-js-instana.yml | 2 +- data/registry/instrumentation-js-prisma.yml | 2 +- data/registry/instrumentation-php-pdo.yml | 2 +- data/registry/instrumentation-ruby-racecar.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/data/registry/exporter-js-instana.yml b/data/registry/exporter-js-instana.yml index 6b8711307af4..da0bf4659968 100644 --- a/data/registry/exporter-js-instana.yml +++ b/data/registry/exporter-js-instana.yml @@ -15,4 +15,4 @@ createdAt: 2022-04-18 package: registry: npm name: '@instana/opentelemetry-exporter' - version: 3.14.1 + version: 3.14.2 diff --git a/data/registry/instrumentation-js-prisma.yml b/data/registry/instrumentation-js-prisma.yml index e22d5f01bff1..3419de332d81 100644 --- a/data/registry/instrumentation-js-prisma.yml +++ b/data/registry/instrumentation-js-prisma.yml @@ -17,4 +17,4 @@ createdAt: 2022-08-25 package: registry: npm name: '@prisma/instrumentation' - version: 5.16.1 + version: 5.16.2 diff --git a/data/registry/instrumentation-php-pdo.yml b/data/registry/instrumentation-php-pdo.yml index a59f064977d0..6667d52d85b1 100644 --- a/data/registry/instrumentation-php-pdo.yml +++ b/data/registry/instrumentation-php-pdo.yml @@ -15,4 +15,4 @@ createdAt: 2023-05-22 package: registry: packagist name: open-telemetry/opentelemetry-auto-pdo - version: 0.0.14 + version: 0.0.15 diff --git a/data/registry/instrumentation-ruby-racecar.yml b/data/registry/instrumentation-ruby-racecar.yml index 5dea36433490..e019d6d840c5 100644 --- a/data/registry/instrumentation-ruby-racecar.yml +++ b/data/registry/instrumentation-ruby-racecar.yml @@ -18,4 +18,4 @@ createdAt: 2022-10-27 package: registry: gems name: opentelemetry-instrumentation-racecar - version: 0.3.3 + version: 0.3.4 From be65f157ad8d4e047685846836e0e1ea6f746cfa Mon Sep 17 00:00:00 2001 From: Tiffany Hrabusa <30397949+tiffany76@users.noreply.github.com> Date: Wed, 10 Jul 2024 03:19:44 -0700 Subject: [PATCH 09/11] Blog post announcing OTel schedule for Kubecon China 2024 (#4747) --- content/en/announcements/kubecon-china.md | 9 +++++ content/en/blog/2024/kubecon-china.md | 47 +++++++++++++++++++++++ static/refcache.json | 36 +++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 content/en/announcements/kubecon-china.md create mode 100644 content/en/blog/2024/kubecon-china.md diff --git a/content/en/announcements/kubecon-china.md b/content/en/announcements/kubecon-china.md new file mode 100644 index 000000000000..b90ac8484b8e --- /dev/null +++ b/content/en/announcements/kubecon-china.md @@ -0,0 +1,9 @@ +--- +title: KubeCon China +date: 2024-07-10 +expiryDate: 2024-08-23 +--- + + Join us in Hong Kong for +[**KubeCon + CloudNativeCon + OpenSourceSummit + AI_dev**](/blog/2024/kubecon-china/) +, August 21 - 23, 2024 diff --git a/content/en/blog/2024/kubecon-china.md b/content/en/blog/2024/kubecon-china.md new file mode 100644 index 000000000000..a09e59731462 --- /dev/null +++ b/content/en/blog/2024/kubecon-china.md @@ -0,0 +1,47 @@ +--- +title: OpenTelemetry Talks at KubeCon China 2024 +linkTitle: KubeCon China 2024 +date: 2024-07-10 +# prettier-ignore +cSpell:ignore: Alhamdani Censhare EBPF Hrabusa Husni Huxing Jiahang Krom Sianturi Wanqi Zhang Zihao Ziyi +author: '[Tiffany Hrabusa](https://github.com/tiffany76)' +sig: Communications SIG +--- + +Join members of the OpenTelemetry community at +[KubeCon + CloudNativeCon + Open Source Summit + AI_dev](https://events.linuxfoundation.org/kubecon-cloudnativecon-open-source-summit-ai-dev-china/) +in Hong Kong from August 21 to 23, 2024. + +This post covers OpenTelemetry related events at the venue and will be updated +as we receive notice of new activities. Check back regularly before the +conference begins. + +## Maintainer sessions + +- **[OpenTelemetry Community Update | OpenTelemetry社区更新](https://sched.co/1eYcJ)**
+ by Zihao Rao & Huxing Zhang, Alibaba Cloud
Wednesday, August 21 • 3:35 - + 4:10 + +## AI_dev talks + +- **[Adaptive Tracing Propagation with OpenTelemetry: Navigating Protocol Diversity in the Cloud | Project Lightning Talk](https://sched.co/1f4zX)**
+ Wednesday, August 21 • 12:03 - 12:08 +- **[Telemetry API and OpenTelemetry: the answer of istio monitoring? | Project Lightning Talk](https://sched.co/1f4zz)**
+ Wednesday, August 21 • 12:24 - 12:29 + +## KubeCon talks + +- **[The Journey of Next-Gen FinTech IDP at China Merchants Bank | 中国招商银行下一代金融科技IDP之旅](https://sched.co/1eYYg)**
+by Jiahang Xu, China Merchants Bank
Thursday, August 22 • 11:00 - 11:35 + +- **[Implement Auto Instrumentation Under GraalVM Static Compilation on OTel Java Agent | GraalVM 静态编译下 OTel Java Agent 的自动增强方案与实现](https://sched.co/1eYZA)**
+by Zihao Rao & Ziyi Lin, Alibaba Cloud
Thursday, August 22 • 1:50 - 2:25 + +- **[OpAMP: Scaling OpenTelemetry with Flexibility | OpAMP:灵活扩展OpenTelemetry](https://sched.co/1eYZt)**
+ by Husni Alhamdani, Censhare & Herbert Sianturi, Krom Bank
Thursday, + August 22 • 3:35 - 4:10 +- **[OpenTelemetry Amplified: Full Observability with EBPF-Enabled Distributed Tracing | OpenTelemetry放大:使用eBPF启用的分布式跟踪实现全面的可观测性](https://sched.co/1eYZq)**
+ by Kai Liu, Alibaba Cloud & Wanqi Yang, Sun Yat
Thursday, August 22 • + 5:15 - 5:50 + +Come listen, learn, and get involved in OpenTelemetry. See you in Hong Kong! diff --git a/static/refcache.json b/static/refcache.json index a13d83ddf83f..ba0920283c4e 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -2067,6 +2067,10 @@ "StatusCode": 206, "LastSeen": "2024-01-18T19:02:37.783585-05:00" }, + "https://events.linuxfoundation.org/kubecon-cloudnativecon-open-source-summit-ai-dev-china/": { + "StatusCode": 206, + "LastSeen": "2024-06-26T22:57:30.474455806Z" + }, "https://events.linuxfoundation.org/open-observability-day-north-america/": { "StatusCode": 206, "LastSeen": "2024-01-18T19:02:06.006346-05:00" @@ -4771,6 +4775,10 @@ "StatusCode": 200, "LastSeen": "2024-01-30T15:25:01.244997-05:00" }, + "https://github.com/tiffany76": { + "StatusCode": 200, + "LastSeen": "2024-06-26T22:57:27.374000192Z" + }, "https://github.com/tigrannajaryan": { "StatusCode": 200, "LastSeen": "2024-01-18T20:05:05.023384-05:00" @@ -8403,6 +8411,34 @@ "StatusCode": 200, "LastSeen": "2024-02-12T15:04:33.334624+01:00" }, + "https://sched.co/1eYYg": { + "StatusCode": 200, + "LastSeen": "2024-06-26T22:57:51.638108489Z" + }, + "https://sched.co/1eYZA": { + "StatusCode": 200, + "LastSeen": "2024-06-26T22:57:54.792440733Z" + }, + "https://sched.co/1eYZq": { + "StatusCode": 200, + "LastSeen": "2024-06-26T22:58:01.590169805Z" + }, + "https://sched.co/1eYZt": { + "StatusCode": 200, + "LastSeen": "2024-06-26T22:57:58.748216479Z" + }, + "https://sched.co/1eYcJ": { + "StatusCode": 200, + "LastSeen": "2024-06-26T22:57:45.817887373Z" + }, + "https://sched.co/1f4zX": { + "StatusCode": 200, + "LastSeen": "2024-06-26T22:57:38.288706655Z" + }, + "https://sched.co/1f4zz": { + "StatusCode": 200, + "LastSeen": "2024-06-26T22:57:40.531765606Z" + }, "https://seecfp.com/": { "StatusCode": 206, "LastSeen": "2024-01-18T19:10:40.056794-05:00" From 2faf0ea68ab12d5fc5423fc98031a3d287b3f88e Mon Sep 17 00:00:00 2001 From: Jean Bisutti Date: Wed, 10 Jul 2024 16:14:26 +0200 Subject: [PATCH 10/11] Improve the annotation doc of the OTel starter (#4806) Co-authored-by: Tiffany Hrabusa <30397949+tiffany76@users.noreply.github.com> Co-authored-by: Jay DeLuca --- .../additional-instrumentations.md | 2 +- .../java/spring-boot-starter/annotations.md | 108 ++++++++++++------ static/refcache.json | 4 + 3 files changed, 78 insertions(+), 36 deletions(-) diff --git a/content/en/docs/zero-code/java/spring-boot-starter/additional-instrumentations.md b/content/en/docs/zero-code/java/spring-boot-starter/additional-instrumentations.md index 241b180ac0eb..a3faeb0cff8a 100644 --- a/content/en/docs/zero-code/java/spring-boot-starter/additional-instrumentations.md +++ b/content/en/docs/zero-code/java/spring-boot-starter/additional-instrumentations.md @@ -1,6 +1,6 @@ --- title: Additional instrumentation -weight: 50 +weight: 60 --- The OpenTelemetry Spring Boot starter provides diff --git a/content/en/docs/zero-code/java/spring-boot-starter/annotations.md b/content/en/docs/zero-code/java/spring-boot-starter/annotations.md index 3d3b9ce0b518..23587a81641e 100644 --- a/content/en/docs/zero-code/java/spring-boot-starter/annotations.md +++ b/content/en/docs/zero-code/java/spring-boot-starter/annotations.md @@ -1,57 +1,95 @@ --- title: Annotations -weight: 60 +weight: 50 +cSpell:ignore: proxys --- For most users, the out-of-the-box instrumentation is completely sufficient and nothing more has to be done. Sometimes, however, users wish to create [spans](/docs/concepts/signals/traces/#spans) for their own custom code without -doing too much code change. +needing to make many code changes. -## Available annotations - -This feature uses spring-aop to wrap methods annotated with `@WithSpan` in a -span. The arguments to the method can be captured as attributed on the created -span by annotating the method parameters with `@SpanAttribute`. - -> **Note**: this annotation can only be applied to bean methods managed by the -> spring application context. To learn more about aspect weaving in spring, see -> [spring-aop](https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#aop). - -| Feature | Property | Default Value | Description | -| ----------- | ------------------------------------------ | ------------- | --------------------------------- | -| `@WithSpan` | `otel.instrumentation.annotations.enabled` | true | Enables the WithSpan annotations. | +If you add the `WithSpan` annotation to a method, the method is wrapped in a +span. The `SpanAttribute` annotation allows you to capture the method arguments +as attributes. ```java -import org.springframework.stereotype.Component; - import io.opentelemetry.instrumentation.annotations.SpanAttribute; import io.opentelemetry.instrumentation.annotations.WithSpan; -import io.opentelemetry.api.trace.Span; -import io.opentelemetry.api.trace.SpanKind; - -/** - * Test WithSpan - */ -@Component -public class TracedClass { @WithSpan - public void tracedMethod() { + public void tracedMethod(@SpanAttribute parameter) { } +``` - @WithSpan(value="span name") - public void tracedMethodWithName() { - Span currentSpan = Span.current(); - currentSpan.addEvent("ADD EVENT TO tracedMethodWithName SPAN"); - currentSpan.setAttribute("isTestAttribute", true); - } +{{% alert title="Note" color="info" %}} The OpenTelemetry annotations use Spring +AOP based on proxys. + +These annotations work only for the methods of the proxy. You can learn more in +the +[Spring documentation](https://docs.spring.io/spring-framework/reference/core/aop/proxying.html). - @WithSpan(kind = SpanKind.CLIENT) - public void tracedClientSpan() { +In the following example, the `WithSpan` annotation won't do anything when the +GET endpoint is called: + +```java +@RestController +public class MyControllerManagedBySpring { + + @GetMapping("/ping") + public void aMethod() { + anotherMethod(); } - public void tracedMethodWithAttribute(@SpanAttribute("attributeName") String parameter) { + @WithSpan + public void anotherMethod() { } } ``` + +{{% /alert %}} + +{{% alert title="Note" color="info" %}} + +To be able to use the OpenTelemetry annotations, you have to add the Spring Boot +Starter AOP dependency to your project: + +{{< tabpane text=true >}} {{% tab header="Maven (`pom.xml`)" lang=Maven %}} + +```xml + + + org.springframework.boot + >spring-boot-starter-aop + + +``` + +{{% /tab %}} {{% tab header="Gradle (`gradle.build`)" lang=Gradle %}} + +```kotlin +dependencies { + implementation("org.springframework.boot:spring-boot-starter-aop") +} +``` + +{{% /tab %}} {{< /tabpane >}} + +{{% /alert %}} + +You can disable the OpenTelemetry annotations by setting the +`otel.instrumentation.annotations.enabled` property to `false`. + +You can customize the span by using the elements of the `WithSpan` annotation: + +| Name | Type | Description | Default Value | +| ------- | ---------- | --------------------- | ------------------- | +| `value` | `String` | Span name | ClassName.Method | +| `kind` | `SpanKind` | Span kind of the span | `SpanKind.INTERNAL` | + +You can set the attribute name from the `value` element of the `SpanAttribute` +annotation: + +| Name | Type | Description | Default Value | +| ------- | -------- | -------------- | --------------------- | +| `value` | `String` | Attribute name | Method parameter name | diff --git a/static/refcache.json b/static/refcache.json index ba0920283c4e..8cd9a9c7f57c 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -1747,6 +1747,10 @@ "StatusCode": 206, "LastSeen": "2024-04-03T12:51:54.758528517+02:00" }, + "https://docs.spring.io/spring-framework/reference/core/aop/proxying.html": { + "StatusCode": 206, + "LastSeen": "2024-07-09T08:58:07.531333949Z" + }, "https://docs.spring.io/spring-security/reference/servlet/authorization/architecture.html#authz-authorities": { "StatusCode": 206, "LastSeen": "2024-02-12T22:02:33.483262-05:00" From e4a0a11fe060a5d2e19ee4c8b24a6e9b10c75918 Mon Sep 17 00:00:00 2001 From: Riccardo Magliocchetti Date: Wed, 10 Jul 2024 17:03:14 +0200 Subject: [PATCH 11/11] distribution: add Elastic Distribution for OpenTelemetry Python (#4820) Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com> --- data/ecosystem/distributions.yaml | 4 ++++ static/refcache.json | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/data/ecosystem/distributions.yaml b/data/ecosystem/distributions.yaml index f20c8bcdb058..943360f48e63 100644 --- a/data/ecosystem/distributions.yaml +++ b/data/ecosystem/distributions.yaml @@ -99,3 +99,7 @@ url: https://github.com/elastic/elastic-otel-node docsUrl: https://github.com/elastic/elastic-otel-node components: [Node] +- name: Elastic Distribution for OpenTelemetry Python + url: https://github.com/elastic/elastic-otel-python + docsUrl: https://github.com/elastic/elastic-otel-python + components: [Python] diff --git a/static/refcache.json b/static/refcache.json index 8cd9a9c7f57c..e6be91010c15 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -2683,6 +2683,10 @@ "StatusCode": 200, "LastSeen": "2024-06-26T13:02:15.527574357Z" }, + "https://github.com/elastic/elastic-otel-python": { + "StatusCode": 200, + "LastSeen": "2024-07-10T14:54:34.760300868Z" + }, "https://github.com/ent/ent/issues/1232#issuecomment-1200405070": { "StatusCode": 200, "LastSeen": "2024-02-24T14:33:06.756997-08:00"