-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into feature/ptbr_version
- Loading branch information
Showing
9 changed files
with
310 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
name: i18n | ||
|
||
on: | ||
pull_request: | ||
|
||
jobs: | ||
i18n-check: | ||
name: I18N check | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- run: scripts/i18n-check.sh -u | ||
- run: .github/workflows/scripts/i18n-check-helper.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
#!/bin/bash -e | ||
|
||
echo "For localization docs, see https://opentelemetry.io/docs/contributing/localization" | ||
|
||
CHANGES=`git status --porcelain` | ||
|
||
if [[ -z $CHANGES ]]; then | ||
echo "All localization pages have the requisit commit hash. <3" | ||
exit; | ||
fi | ||
|
||
cat <<EOS | ||
Some i18n pages are missing the 'default_lang_commit' front matter field. | ||
To fix this in your local development environment, run | ||
scripts/i18n-check.sh -u | ||
and commit the changes for your locale. Here are the list of pages that | ||
need to be updated: | ||
--- | ||
EOS | ||
|
||
echo "$CHANGES" | ||
echo "---" | ||
|
||
exit 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
141 changes: 141 additions & 0 deletions
141
content/en/blog/2024/elastic-contributes-continuous-profiling-agent.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
--- | ||
title: Elastic Contributes its Continuous Profiling Agent to OpenTelemetry | ||
linkTitle: Elastic Contributes Profiling Agent # Mandatory, make sure that your short title. | ||
date: 2024-06-07 | ||
# prettier-ignore | ||
cSpell:ignore: Bahubali Christos Dmitry Filimonov Geisendörfer Halliday Kalkanis Shetti | ||
author: | ||
>- # If you have only one author, then add the single name on this line in quotes. | ||
[Bahubali Shetti](https://github.com/bshetti) (Elastic), [Alexander | ||
Wert](https://github.com/AlexanderWert) (Elastic), [Morgan | ||
McLean](https://github.com/mtwo) (Splunk), [Ryan | ||
Perry](https://github.com/Rperry2174) (Grafana) | ||
issue: https://github.com/open-telemetry/community/issues/1918 | ||
sig: Profiling SIG | ||
--- | ||
|
||
Following significant collaboration between | ||
[Elastic](https://www.elastic.co/observability-labs/blog/elastic-donation-proposal-to-contribute-profiling-agent-to-opentelemetry) | ||
and [OpenTelemetry's profiling community](/blog/2024/profiling/), which included | ||
a thorough review process, we’re excited to announce that the OpenTelemetry | ||
project has accepted | ||
[Elastic's donation of its continuous profiling agent](https://github.com/open-telemetry/community/issues/1918). | ||
|
||
This marks a significant milestone in establishing profiling as a core telemetry | ||
signal in OpenTelemetry. Elastic’s [eBPF based](https://ebpf.io/) profiling | ||
agent observes code across different programming languages and runtimes, | ||
third-party libraries, kernel operations, and system resources with low CPU and | ||
memory overhead in production. Both, SREs and developers can now benefit from | ||
these capabilities: quickly identifying performance bottlenecks, maximizing | ||
resource utilization, reducing carbon footprint, and optimizing cloud spend. | ||
|
||
Elastic’s decision to contribute the project to OpenTelemetry was made to | ||
accelerate OpenTelemetry’s mission and enable effective observability through | ||
high-quality, portable telemetry. This collaboration also shows the commitment | ||
to vendor neutrality and community-driven development enhancing the overall | ||
profiling and observability ecosystems. | ||
|
||
The donation happened through a great and constructive cooperation between | ||
Elastic and the OpenTelemetry community. We look forward to jointly establishing | ||
continuous profiling as an integral part of OpenTelemetry. | ||
|
||
With today’s acceptance, Elastic’s continuous profiling agent will be | ||
contributed to OpenTelemetry. This agent will now be jointly supported by both | ||
Elastic’s team as well as a diverse set of official maintainers from different | ||
companies: | ||
|
||
- Dmitry Filimonov (Grafana Labs) | ||
- Felix Geisendörfer (Datadog) | ||
- Jonathan Halliday (Red Hat) | ||
- Christos Kalkanis (Elastic) | ||
|
||
## What is continuous profiling? | ||
|
||
[Continuous profiling](https://www.cncf.io/blog/2022/05/31/what-is-continuous-profiling/) | ||
is a technique used to understand the behavior of a software application by | ||
collecting information about its execution over time. This includes tracking the | ||
duration of function calls, memory usage, CPU usage, and other system resources | ||
along with associated metadata. | ||
|
||
## Benefits of Continuous Profiling | ||
|
||
Traditional profiling solutions, typically used for one-off, development time | ||
optimizations, can have significant drawbacks limiting adoption in production | ||
environments: | ||
|
||
- Significant cost and performance overhead due to code instrumentation | ||
- Disruptive service restarts | ||
- Inability to get visibility into third-party libraries | ||
|
||
Continuous profiling, however, runs in the background with minimal overhead, | ||
providing real-time, actionable insights without the need to replicate issues in | ||
separate environments. | ||
|
||
This allows SREs, DevOps, and developers to see how code affects performance and | ||
cost, making code and infrastructure improvements easier. | ||
|
||
## Contribution of comprehensive profiling abilities | ||
|
||
The continuous profiling agent, that Elastic is donating, is | ||
[based on eBPF](https://ebpf.io/) and by that a whole system, always-on solution | ||
that observes code and third-party libraries, kernel operations, and other code | ||
you don't own. It eliminates the need for code instrumentation | ||
(run-time/bytecode), recompilation, or service restarts with low overhead, low | ||
CPU (~1%), and memory usage in production environments. | ||
|
||
The donated profiling agent facilitates identifying non-optimal code paths, | ||
uncovering "unknown unknowns", and provides comprehensive visibility into the | ||
runtime behavior of all applications. The continuous profiling agent provides | ||
support for a wide range of runtimes and languages, such as: | ||
|
||
- C/C++ | ||
- Rust | ||
- Zig | ||
- Go | ||
- Java | ||
- Python | ||
- Ruby | ||
- PHP | ||
- Node.js / V8 | ||
- Perl | ||
- .NET | ||
|
||
## Benefits to OpenTelemetry | ||
|
||
This contribution not only boosts the standardization of continuous profiling | ||
for observability but also accelerates its adoption as a key signal in | ||
OpenTelemetry. Customers benefit from a vendor-agnostic method of collecting | ||
profiling data correlating it with existing signals, like tracing, metrics, and | ||
logs, opening new potential for observability insights and a more efficient | ||
troubleshooting experience. | ||
|
||
### User benefits of OpenTelemetry Profiling | ||
|
||
OpenTelemetry-based continuous profiling unlocks the following possibilities for | ||
users: | ||
|
||
- Continuous profiling data compliments the existing signals (traces, metrics | ||
and logs) by providing detailed, code-level insights on the services' | ||
behavior. | ||
|
||
- Seamless correlation with other OpenTelemetry signals such as traces, | ||
increasing fidelity and investigatory depth. | ||
|
||
- Estimate environmental impact: Combining profiling data with OpenTelemetry's | ||
resource information (i.e. resource attributes) allows to derive insights into | ||
the services' carbon footprint. | ||
|
||
- Through a detailed breakdown of services' resource utilization, profiling data | ||
provides actionable information on performance optimization opportunities. | ||
|
||
- Improved vendor neutrality: a vendor-agnostic eBPF-based profiling agent | ||
removes the need to rely on proprietary agents to collect profiling telemetry. | ||
|
||
With these benefits, SREs, developers, and DevOps, can now manage the overall | ||
application’s efficiency on the cloud while ensuring their engineering teams | ||
optimize it. | ||
|
||
As the next step, the OpenTelemetry profiling SIG, that Elastic is a part of, | ||
will jointly work on integrating the donated agent into OpenTelemetry's | ||
components ecosystem. We look forward to providing a fully integrated and usable | ||
version of the new OpenTelemetry eBPF profiling agent to the users, soon. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- | ||
title: ドキュメント | ||
menu: { main: { weight: 10 } } | ||
default_lang_commit: 93ab1301 | ||
--- | ||
|
||
OTelの略称でも知られるOpenTelemetryは、[トレース](/docs/concepts/signals/traces/)、[メトリクス](/docs/concepts/signals/metrics/)、[ログ](/docs/concepts/signals/logs/)のようなテレメトリーデータを計装、生成、収集、エクスポートするためのベンダー非依存なオープンソースの[オブザーバビリティ](/docs/concepts/observability-primer/#what-is-observability)フレームワークです。 | ||
|
||
業界標準として、OpenTelemetryは[40以上のオブザーバビリティベンダーによってサポートされ](/ecosystem/vendors/)、多くの[ライブラリ、サービス、アプリ](/ecosystem/integrations)によって統合され、[多くのエンドユーザー](/ecosystem/adopters)によって採用されています。 | ||
|
||
![OpenTelemetry Reference Architecture](/img/otel-diagram.svg) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
--- | ||
title: OpenTelemetryとは | ||
description: OpenTelemetryが何であり、何でないかについての簡単な説明。 | ||
weight: 150 | ||
default_lang_commit: 93ab1301 | ||
--- | ||
|
||
OpenTelemetryは[オブザーバビリティ](/docs/concepts/observability-primer/#what-is-observability)フレームワークであり、[トレース](/docs/concepts/signals/traces/)、[メトリクス](/docs/concepts/signals/metrics/)、[ログ](/docs/concepts/signals/logs/)のようなテレメトリーデータを作成・管理するためにデザインされたツールキットです。 | ||
重要なことは、OpenTelemetryはベンダーやツールにとらわれないということです。 | ||
つまり、[Jaeger](https://www.jaegertracing.io/)や[Prometheus](https://prometheus.io/)のようなオープンソースツールや、商用製品を含む、さまざまなオブザーバビリティバックエンドで使用できるということです。 | ||
|
||
OpenTelemetryは、JaegerやPrometheusや他の商用ベンダーのようなオブザーバビリティバックエンドではありません。 | ||
OpenTelemetryはテレメトリの生成、収集、管理、そしてエクスポートにフォーカスしています。 | ||
OpenTelemetryの主な目的は、あなたのアプリケーションやシステムを、その言語、インフラ、ランタイム環境に関係なく、簡単に計装できるようにすることです。 | ||
テレメトリーの保存と可視化は、意図的に他のツールに任せているということを理解するのが重要です。 | ||
|
||
## オブザーバビリティとはなにか | ||
|
||
[オブザーバビリティ](/docs/concepts/observability-primer/#what-is-observability)とは、システムの出力を調べることによって、システムの内部状態を理解する能力のことです。 | ||
ソフトウェアの文脈では、これは、トレース、メトリクス、ログを含むテレメトリーデータを調べることによって、システムの内部状態を理解できることを意味します。 | ||
|
||
システムをオブザーバビリティがある状態にするには、[軽装されて](/docs/concepts/instrumentation)いなければなりません。 | ||
つまり、コードが[トレース](/docs/concepts/signals/traces/)、[メトリクス](/docs/concepts/signals/metrics/)、または[ログ](/docs/concepts/signals/logs/)を出力しなければなりません。 | ||
計装されたデータは、オブザーバビリティバックエンドに送信されなければなりません。 | ||
|
||
## なぜOpenTelemetryなのか | ||
|
||
クラウドコンピューティング、マイクロサービスアーキテクチャー、複雑化するビジネス要件の台頭により、ソフトウェアとインフラの[オブザーバビリティ](/docs/concepts/observability-primer/#what-is-observability)の必要性はかつてないほど高まっています。 | ||
|
||
OpenTelemetryは、2つの重要な原則に従いながら、オブザーバビリティの需要を満たしています。 | ||
|
||
1. あなたが生成したデータはあなたのものです。ベンダーのロックインはありません。 | ||
2. APIと規約は1セットだけ覚えれば良いです。 | ||
|
||
この2つの原則を組み合わせることで、現代のコンピューティングの世界で必要とされる柔軟性をチームや組織に与えられます。 | ||
|
||
もっと知りたければ、OpenTelemetryの[ミッション、ビジョン、バリュー](/community/mission/)を見てください。 | ||
|
||
## OpenTelemetryの主要コンポーネント | ||
|
||
OpenTelemetryは以下の主要コンポーネントで構成されています。 | ||
|
||
- 全コンポーネントの[仕様](/docs/specs/otel) | ||
- テレメトリーデータの形式を定義する標準[プロトコル](/docs/specs/otlp/) | ||
- 共通のテレメトリーデータ型のための標準の命名スキーマを定義する[セマンティック規約](/docs/specs/semconv/) | ||
- テレメトリーデータの生成方法を定義するAPI | ||
- 仕様、API、テレメトリーデータのエクスポートを実装する[各言語向けSDK](/docs/languages) | ||
- 共通ライブラリやフレームワークの計装を実装する[ライブラリエコシステム](/ecosystem/registry) | ||
- コード変更の必要なくテレメトリーデータを生成する自動計装コンポーネント | ||
- テレメトリーデータの受信、処理、送信のためのプロキシとなる[OpenTelemetryコレクター](/docs/collector) | ||
- [OpenTelemetry Operator for Kubernetes](/docs/kubernetes/operator/)、[OpenTelemetry Helm Charts](/docs/kubernetes/helm/)、[FaaS向けコミュニティアセット](/docs/faas/)といったその他さまざまなツール | ||
|
||
OpenTelemetryは、デフォルトでオブザーバビリティを提供するために、OpenTelemetryが統合されたさまざまな[ライブラリ、サービス、アプリ](/ecosystem/integrations/)によって使用されています。 | ||
|
||
OpenTelemetryは多くの[ベンダー](/ecosystem/vendors/)によってサポートされており、その多くはOpenTelemetryの商用サポートを提供し、プロジェクトに直接貢献しています。 | ||
|
||
## 拡張性 | ||
|
||
OpenTelemetryは拡張できるように設計されています。どのように拡張できるかの例をいくつか挙げます。 | ||
|
||
- OpenTelemetryコレクターにレシーバーを追加して、独自のデータソースからのテレメトリーデータをサポートする | ||
- カスタム計装ライブラリをSDKにロードする | ||
- 特定のユースケースに合わせたSDKまたはコレクターの[ディストリビューション](/docs/concepts/distributions/)の作成 | ||
- OpenTelemetryプロトコル(OTLP)をまだサポートしていないカスタムバックエンド用の新しいエクスポーターの作成 | ||
- 非標準のコンテキスト伝播形式用のカスタムプロパゲーターの作成 | ||
|
||
ほとんどのユーザーはOpenTelemetryを拡張する必要はないかもしれませんが、このプロジェクトはほぼすべてのレベルで拡張できるように設計されています。 | ||
|
||
## 歴史 | ||
|
||
OpenTelemetryは、[Cloud Native Computing Foundation (CNCF)](https://www.cncf.io)プロジェクトであり、[OpenTracing](https://opentracing.io)と[OpenCensus](https://opencensus.io)の2つのプロジェクトが統合された成果物です。 | ||
これらのプロジェクトはどちらも、コードを計装し、オブザーバビリティバックエンドにテレメトリーデータを送信する方法の標準がないという問題を解決するために作られました。 | ||
どちらのプロジェクトも、独立してこの問題を完全には解決できなかったので、協力するためにOpenTelemetryプロジェクトとして合併し、単一のソリューションを提供しながら、それぞれの強みを組み合わせました。 | ||
|
||
現在OpenTracingまたはOpenCensusを使っている場合は、[移行ガイド](/docs/migration/)でOpenTelemetryへの移行方法を確認してください。 | ||
|
||
## 次のステップ | ||
|
||
- [Getting started](/docs/getting-started/) — 早速始めてみましょう! | ||
- [OpenTelemetryの概念](/docs/concepts/)について学ぶ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.