O11y Cloud で問題を解決するのサブセクション EC2 インスタンスへの接続 5 minutes
EC2 インスタンスに接続する 各参加者用にAWS/EC2でUbuntu Linuxインスタンスを準備しています。インストラクターから提供されたIPアドレスとパスワードを使用して、以下のいずれかの方法でEC2インスタンスに接続してください:
macOS / Linux Windows 10+ Windowsの以前のバージョン ファイルの編集 ワークショップでは vi を使用してファイルを編集します。簡単な使い方を説明します。
ファイルを編集用に開くには:
ファイルを編集するには、i を押して Insert mode に切り替え、通常通りテキストを入力します。Esc を押すと Command mode に戻ります。 エディタを終了せずに変更を保存するには、Esc を押してコマンドモードに戻り、:w と入力します。 変更を保存せずにエディタを終了するには、Esc を押してコマンドモードに戻り、:q! と入力します。 変更を保存してエディタを終了するには、Esc を押してコマンドモードに戻り、:wq と入力します。 vi の包括的な説明については An introduction to the vi editor を参照してください。
別のエディタを使用したい場合は、代わりに nano を使用できます:
OpenTelemetry Collector のデプロイと設定のカスタマイズ 15 minutes
「データを取り込む」ための最初のステップは、OpenTelemetry Collectorをデプロイすることです。Collectorは環境内のテレメトリデータを受信して処理し、Splunk Observability Cloudにエクスポートします。
このワークショップではKubernetesを使用し、Helmを使用してK8sクラスターにCollectorをデプロイします。
Helm とは? HelmはKubernetes用のパッケージマネージャーで、以下のような利点があります:
複雑さの管理多数のマニフェストファイルではなく、単一のvalues.yamlファイルで対応 簡単なアップデート ロールバックのサポートhelm rollbackを使用するだけで、リリースの古いバージョンにロールバック可能 Helm を使用して Collector をインストールする 正しいディレクトリに移動し、スクリプトを実行してCollectorをインストールしましょう:
cd /home/splunk/workshop/tagging
./1-deploy-otel-collector.sh "splunk-otel-collector-chart" has been added to your repositories
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "splunk-otel-collector-chart" chart repository
Update Complete. ⎈Happy Helming!⎈
NAME: splunk-otel-collector
LAST DEPLOYED: Mon Dec 23 18:47:38 2024
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
Splunk OpenTelemetry Collector is installed and configured to send data to Splunk Observability realm us1. スクリプトの実行には1分程度かかる場合があります。
このスクリプトはどのようにしてCollectorをインストールしたのでしょうか?まず、~./profile ファイルに設定された環境変数が読み込まれていることを確認しました:
重要:以下のコマンドは 1-deploy-otel-collector.sh スクリプトによって既に実行されているため、
実行する必要はありません。
次に、splunk-otel-collector-chart Helmチャートをインストールし、最新の状態であることを確認しました:
helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart
helm repo update 最後に、helm install を使用してCollectorをインストールしました:
helm install splunk-otel-collector --version 0.136.0 \
--set= "splunkObservability.realm= $REALM " \
--set= "splunkObservability.accessToken= $ACCESS_TOKEN " \
--set= "clusterName= $INSTANCE -k3s-cluster" \
--set= "environment=tagging-workshop- $INSTANCE " \
splunk-otel-collector-chart/splunk-otel-collector \
-f otel/values.yamlhelm install コマンドは values.yaml ファイルを参照していることに注意してください。
このファイルは Collector の設定をカスタマイズするために使用されます。詳細は後述します。
Collector が実行中であることを確認する 以下のコマンドでCollectorが実行中かどうかを確認できます:
NAME READY STATUS RESTARTS AGE
splunk-otel-collector-agent-kfvjb 1/1 Running 0 2m33s
splunk-otel-collector-certmanager-7d89558bc9-2fqnx 1/1 Running 0 2m33s
splunk-otel-collector-certmanager-cainjector-796cc6bd76-hz4sp 1/1 Running 0 2m33s
splunk-otel-collector-certmanager-webhook-6959cd5f8-qd5b6 1/1 Running 0 2m33s
splunk-otel-collector-k8s-cluster-receiver-57569b58c8-8ghds 1/1 Running 0 2m33s
splunk-otel-collector-operator-6fd9f9d569-wd5mn 2/2 Running 0 2m33s K8s クラスターが O11y Cloud に存在することを確認する Splunk Observability Cloudで、Infrastructure → Kubernetes → Kubernetes Clusters に移動し、
クラスター名($INSTANCE-k3s-cluster)を検索します:
Collector の設定を取得する Collectorの設定をカスタマイズする前に、現在の設定がどのようになっているかを
確認するにはどうすればよいでしょうか?
Kubernetes環境では、Collectorの設定はConfig Mapを使用して保存されています。
以下のコマンドで、クラスター内に存在するconfig mapを確認できます:
kubectl get cm -l app = splunk-otel-collector NAME DATA AGE
splunk-otel-collector-otel-k8s-cluster-receiver 1 3h37m
splunk-otel-collector-otel-agent 1 3h37m 次に、以下のようにしてCollectorエージェントのconfig mapを表示できます:
kubectl describe cm splunk-otel-collector-otel-agent Name: splunk-otel-collector-otel-agent
Namespace: default
Labels: app = splunk-otel-collector
app.kubernetes.io/instance= splunk-otel-collector
app.kubernetes.io/managed-by= Helm
app.kubernetes.io/name= splunk-otel-collector
app.kubernetes.io/version= 0.113.0
chart = splunk-otel-collector-0.113.0
helm.sh/chart= splunk-otel-collector-0.113.0
heritage = Helm
release = splunk-otel-collector
Annotations: meta.helm.sh/release-name: splunk-otel-collector
meta.helm.sh/release-namespace: default
Data
====
relay:
----
exporters:
otlphttp:
headers:
X-SF-Token: ${ SPLUNK_OBSERVABILITY_ACCESS_TOKEN }
metrics_endpoint: https://ingest.us1.signalfx.com/v2/datapoint/otlp
traces_endpoint: https://ingest.us1.signalfx.com/v2/trace/otlp
( followed by the rest of the collector config in yaml format) K8s で Collector の設定を更新する方法 K8sでは values.yaml ファイルを使用してCollectorの設定をカスタマイズできます。
values.yaml ファイルで利用可能なカスタマイズオプションの包括的なリストについては、
このファイル を参照してください。
例を見てみましょう。
Debug Exporter を追加する Collectorに送信されるトレースを確認したいとします。この目的にはdebug exporterを使用できます。これはOpenTelemetry関連の問題のトラブルシューティングに役立ちます。
vi または nano を使用して values.yaml ファイルを編集できます。ここではviを使用した例を示します:
vi /home/splunk/workshop/tagging/otel/values.yaml 以下のテキストをコピーして values.yaml ファイルの末尾に貼り付けて、debug exporterを追加します:
以下のテキストを追加する前に、vi で ‘i’ を押してインサートモードに入ってください。
# NEW CONTENT
exporters :
debug :
verbosity : detailed
service :
pipelines :
traces :
exporters :
- otlphttp
- signalfx
- debug これらの変更後、values.yaml ファイルは以下の内容を含むはずです:
splunkObservability :
profilingEnabled : true
infrastructureMonitoringEventsEnabled : true
certmanager :
enabled : true
operator :
enabled : true
operatorcrds :
install : true
agent :
config :
receivers :
kubeletstats :
insecure_skip_verify : true
auth_type : serviceAccount
endpoint : ${K8S_NODE_IP}:10250
metric_groups :
- container
- pod
- node
- volume
k8s_api_config :
auth_type : serviceAccount
extra_metadata_labels :
- container.id
- k8s.volume.type
extensions :
zpages :
endpoint : 0.0.0.0 : 55679
# NEW CONTENT
exporters :
debug :
verbosity : detailed
service :
pipelines :
traces :
exporters :
- otlphttp
- signalfx
- debug vi で変更を保存するには、esc キーを押してコマンドモードに入り、:wq! と入力してから
enter/return キーを押します。
ファイルを保存したら、以下のコマンドで変更を適用できます:
cd /home/splunk/workshop/tagging
helm upgrade splunk-otel-collector \
--set= "splunkObservability.realm= $REALM " \
--set= "splunkObservability.accessToken= $ACCESS_TOKEN " \
--set= "clusterName= $INSTANCE -k3s-cluster" \
--set= "environment=tagging-workshop- $INSTANCE " \
splunk-otel-collector-chart/splunk-otel-collector \
-f otel/values.yamlRelease "splunk-otel-collector" has been upgraded. Happy Helming!
NAME: splunk-otel-collector
LAST DEPLOYED: Mon Dec 23 19:08:08 2024
NAMESPACE: default
STATUS: deployed
REVISION: 2
NOTES:
Splunk OpenTelemetry Collector is installed and configured to send data to Splunk Observability realm us1. values.yaml ファイルを通じてCollectorの設定を変更した場合は、
config mapを確認して、Collectorに適用された実際の設定を確認することが有用です:
kubectl describe cm splunk-otel-collector-otel-agent 期待通り、debug exporterがtracesパイプラインに追加されたことが確認できます:
traces :
exporters :
- otlphttp
- signalfx
- debug debug exporterの出力については、クラスターにアプリケーションをデプロイして
トレースのキャプチャを開始した後に確認します。
サンプルアプリケーションのデプロイと OpenTelemetry による計装 15 minutes
この時点で、K8sクラスターにOpenTelemetry Collectorをデプロイし、
インフラストラクチャメトリクスの収集に成功しています。
次のステップは、サンプルアプリケーションをデプロイし、
OpenTelemetryで計装してトレースをキャプチャすることです。
Pythonで書かれたマイクロサービスベースのアプリケーションを使用します。ワークショップをシンプルに保つため、
credit check serviceとcredit processor serviceの2つのサービスに焦点を当てます。
アプリケーションのデプロイ 時間を節約するため、両方のサービスのDockerイメージを既に構築してDocker Hubで公開しています。
以下のコマンドで、K8sクラスターにcredit check serviceをデプロイできます:
kubectl apply -f /home/splunk/workshop/tagging/creditcheckservice-py-with-tags/creditcheckservice-dockerhub.yaml deployment.apps/creditcheckservice created
service/creditcheckservice created 次に、credit processor serviceをデプロイしましょう:
kubectl apply -f /home/splunk/workshop/tagging/creditprocessorservice/creditprocessorservice-dockerhub.yaml deployment.apps/creditprocessorservice created
service/creditprocessorservice created 最後に、トラフィックを生成するロードジェネレーターをデプロイしましょう:
kubectl apply -f /home/splunk/workshop/tagging/loadgenerator/loadgenerator-dockerhub.yaml deployment.apps/loadgenerator created アプリケーションの詳細を確認する このセクションでは、アプリケーションの概要を説明します。アプリケーションの完全な
ソースコードを確認したい場合は、GitHub の Observability Workshop リポジトリ を参照してください。
OpenTelemetry による計装 credit check serviceとcredit processor serviceのビルドに使用されるDockerfileを見ると、
OpenTelemetryで既に計装されていることがわかります。例として、
/home/splunk/workshop/tagging/creditcheckservice-py-with-tags/Dockerfile を見てみましょう:
FROM python:3.11-slim
# Set working directory
WORKDIR /app
# Copy requirements over
COPY requirements.txt .
RUN apt-get update && apt-get install --yes gcc python3-dev
ENV PIP_ROOT_USER_ACTION = ignore
# Install Python dependencies
RUN pip install --no-cache-dir -r requirements.txt
# Copy main app
COPY main.py .
# Bootstrap OTel
RUN splunk-py-trace-bootstrap
# Set the entrypoint command to run the application
CMD [ "splunk-py-trace" , "python3" , "main.py" ] splunk-py-trace-bootstrap が含まれていることがわかります。これは、アプリケーションで使用される
サポートされているパッケージにOpenTelemetryの計装をインストールします。また、splunk-py-trace が
アプリケーションを起動するコマンドの一部として使用されていることもわかります。
/home/splunk/workshop/tagging/creditcheckservice-py-with-tags/requirements.txt ファイルを確認すると、
パッケージのリストに splunk-opentelemetry[all] が含まれていることがわかります。
最後に、このサービスのデプロイに使用したKubernetesマニフェスト(/home/splunk/workshop/tagging/creditcheckservice-py-with-tags/creditcheckservice-dockerhub.yaml)を確認すると、
コンテナに環境変数が設定されており、OTLPデータのエクスポート先を
OpenTelemetryに伝えていることがわかります:
env :
- name : PORT
value : "8888"
- name : NODE_IP
valueFrom :
fieldRef :
fieldPath : status.hostIP
- name : OTEL_EXPORTER_OTLP_ENDPOINT
value : "http://$(NODE_IP):4317"
- name : OTEL_SERVICE_NAME
value : "creditcheckservice"
- name : OTEL_PROPAGATORS
value : "tracecontext,baggage" これだけで、サービスをOpenTelemetryで計装できます!
アプリケーションの詳細を確認する アプリケーションでいくつかのカスタムタグをキャプチャしていますが、これについては後ほど詳しく見ていきます。その前に、
タグの概念とそれが重要な理由について説明します。
タグとは? タグは、トレース内のスパンに関する追加のメタデータを提供するキーと値のペアで、Splunk APM に送信するスパンのコンテキストを充実させることができます。
例えば、決済処理アプリケーションでは以下を追跡できると便利です:
使用された決済方法(クレジットカード、ギフトカードなど) 決済をリクエストした顧客のID これにより、決済処理中にエラーやパフォーマンスの問題が発生した場合、トラブルシューティングに必要なコンテキストを得ることができます。
一部のタグはOpenTelemetry Collectorで追加できますが、このワークショップで扱うタグはより詳細なもので、アプリケーション開発者がOpenTelemetry SDKを使用して追加します。
なぜタグはそれほど重要なのか? タグは、アプリケーションを真にオブザーバブルにするために不可欠です。トレースにコンテキストを追加することで、
なぜ一部のユーザーは素晴らしい体験を得て、他のユーザーはそうでないのかを理解する助けになります。また、
Splunk Observability Cloud の強力な機能は、タグを活用して根本原因に素早くたどり着くことを支援します。
先に進む前に用語について説明します。このワークショップでは tags (タグ)について説明しますが、
これは Splunk Observability Cloud で使用する用語です。OpenTelemetry では
代わりに attributes (属性)という用語を使用します。そのため、このワークショップ全体で
タグが言及されている場合、それは属性と同義として扱ってください。
タグはどのようにキャプチャされるのか? Pythonアプリケーションでタグをキャプチャするには、まず /home/splunk/workshop/tagging/creditcheckservice-py-with-tags/main.py ファイルの先頭に
import文を追加してtraceモジュールをインポートします:
import requests
from flask import Flask , request
from waitress import serve
from opentelemetry import trace # <--- ADDED BY WORKSHOP
... 次に、現在のスパンへの参照を取得して、属性(別名タグ)を追加できるようにします:
def credit_check ():
current_span = trace . get_current_span () # <--- ADDED BY WORKSHOP
customerNum = request . args . get ( 'customernum' )
current_span . set_attribute ( "customer.num" , customerNum ) # <--- ADDED BY WORKSHOP
... とても簡単ですよね?credit check serviceで合計4つのタグをキャプチャしており、最終的な結果は以下のようになります:
def credit_check ():
current_span = trace . get_current_span () # <--- ADDED BY WORKSHOP
customerNum = request . args . get ( 'customernum' )
current_span . set_attribute ( "customer.num" , customerNum ) # <--- ADDED BY WORKSHOP
# Get Credit Score
creditScoreReq = requests . get ( "http://creditprocessorservice:8899/getScore?customernum=" + customerNum )
creditScoreReq . raise_for_status ()
creditScore = int ( creditScoreReq . text )
current_span . set_attribute ( "credit.score" , creditScore ) # <--- ADDED BY WORKSHOP
creditScoreCategory = getCreditCategoryFromScore ( creditScore )
current_span . set_attribute ( "credit.score.category" , creditScoreCategory ) # <--- ADDED BY WORKSHOP
# Run Credit Check
creditCheckReq = requests . get ( "http://creditprocessorservice:8899/runCreditCheck?customernum=" + str ( customerNum ) + "&score=" + str ( creditScore ))
creditCheckReq . raise_for_status ()
checkResult = str ( creditCheckReq . text )
current_span . set_attribute ( "credit.check.result" , checkResult ) # <--- ADDED BY WORKSHOP
return checkResult トレースデータを確認する Splunk Observability Cloudでトレースデータを確認する前に、
以下のコマンドでエージェントCollectorのログをtailして、debug exporterがキャプチャした内容を確認しましょう:
kubectl logs -l component = otel-collector-agent -f ヒント:CTRL+C を使用してログのtailを停止します。
エージェントCollectorのログに以下のようなトレースが書き込まれているはずです:
InstrumentationScope opentelemetry.instrumentation.flask 0.44b0
Span #0
Trace ID : 9f9fc109903f25ba57bea9b075aa4833
Parent ID :
ID : 6d71519f454f6059
Name : /check
Kind : Server
Start time : 2024-12-23 19:55:25.815891965 +0000 UTC
End time : 2024-12-23 19:55:27.824664949 +0000 UTC
Status code : Unset
Status message :
Attributes:
-> http.method: Str(GET)
-> http.server_name: Str(waitress.invalid)
-> http.scheme: Str(http)
-> net.host.port: Int(8888)
-> http.host: Str(creditcheckservice:8888)
-> http.target: Str(/check?customernum=30134241)
-> net.peer.ip: Str(10.42.0.19)
-> http.user_agent: Str(python-requests/2.31.0)
-> net.peer.port: Str(47248)
-> http.flavor: Str(1.1)
-> http.route: Str(/check)
-> customer.num: Str(30134241)
-> credit.score: Int(443)
-> credit.score.category: Str(poor)
-> credit.check.result: Str(OK)
-> http.status_code: Int(200)トレースに、コードでキャプチャした credit.score や credit.score.category などの
タグ(属性とも呼ばれる)が含まれていることに注目してください。次のセクションで、
Splunk Observability Cloudでトレースを分析してパフォーマンス問題の根本原因を見つける際に、これらを使用します。
Troubleshooting MetricSet を作成する 5 minutes
タグのインデックス作成 Tag Spotlight などの Splunk Observability Cloud の高度な機能を使用するには、まず1つ以上のタグをインデックスする必要があります。
これを行うには、Settings -> MetricSets に移動し、APM タブが選択されていることを確認します。次に + Add Custom MetricSet ボタンをクリックします。
以下の詳細を入力して credit.score.category タグをインデックスしましょう(注意 :ワークショップの参加者全員が同じ組織を使用しているため、このステップはインストラクターが代わりに行います):
Start Analysis をクリックして続行します。
分析が実行されている間、タグは Pending MetricSets のリストに表示されます。
分析が完了したら、Actions 列のチェックマークをクリックします。
Troubleshooting MetricSet と Monitoring MetricSet の違い このタグをインデックスするために、Troubleshooting MetricSet と呼ばれるものを作成したことにお気づきかもしれません。Troubleshooting MetricSet(TMS)は、Tag Spotlight などの機能を使用してこのタグに関する問題をトラブルシューティングできるため、このように名付けられています。
また、選択しなかった Monitoring MetricSet (MMS)という別のオプションがあることにもお気づきかもしれません。Monitoring MetricSetはトラブルシューティングを超えて、タグをアラートやダッシュボードに使用できます。このワークショップではこの機能については詳しく説明しませんが、ぜひご自身で探索することをお勧めする強力な機能です。
Tag Spotlight を使用して問題をトラブルシューティングする 15 minutes
APM データを確認する キャプチャしたAPMデータの一部を確認して、アプリケーションのパフォーマンスを見てみましょう。
APM に移動し、Environment ドロップダウンを使用して環境を選択します(例:tagging-workshop-instancename)。
サービスのリストに creditprocessorservice と creditcheckservice が表示されているはずです:
右側の Service Map をクリックしてサービスマップを表示します。creditcheckservice が creditprocessorservice を呼び出しており、平均応答時間が少なくとも3秒であることがわかります:
次に、右側の Traces をクリックして、このアプリケーションでキャプチャされたトレースを確認します。一部のトレースは比較的高速(数ミリ秒程度)に実行される一方、他のトレースは数秒かかることがわかります。
実行時間の長いトレースの1つをクリックします。この例では、トレースに5秒かかり、ほとんどの時間が creditprocessorservice の一部である /runCreditCheck 操作の呼び出しに費やされていることがわかります:
しかし、なぜ一部のトレースは遅く、他のトレースは比較的速いのでしょうか?
トレースを閉じてTrace Analyzerに戻ります。Errors only を on に切り替えると、一部のトレースにエラーがあることにも気づくでしょう:
エラートレースの1つを見ると、creditprocessorservice が otherservice という別のサービスを呼び出そうとしたときにエラーが発生していることがわかります。しかし、なぜ一部のリクエストは otherservice への呼び出しを行い、他のリクエストは行わないのでしょうか?
一部のリクエストがなぜ遅く実行され、一部のリクエストがなぜエラーになるのかを特定するために、
トレースを1つずつ確認して問題の背後にあるパターンを見つけようとすることもできます。
Splunk Observability Cloud は、問題の根本原因を見つけるためのより良い方法を提供します。次にこれを確認しましょう。
Tag Spotlight を使用する credit.score.category タグをインデックスしたので、Tag Spotlight と一緒に使用してアプリケーションをトラブルシューティングできます。
APM に移動し、右側の Tag Spotlight をクリックします。Service ドロップダウンから creditcheckservice サービスが選択されていることを確認します(まだ選択されていない場合)。
Tag Spotlight を使用すると、impossible のスコアになるクレジットスコアリクエストの100%にエラーがあることがわかります。一方、他のすべてのクレジットスコアタイプのリクエストにはまったくエラーがありません!
これは Tag Spotlight の威力を示しています!この機能がなければ、このパターンを見つけるのは時間がかかります。数百のトレースを手動で確認してパターンを特定する必要があり(それでも見つかる保証はありません)。
エラーを確認しましたが、レイテンシはどうでしょうか?Requests & errors distribution ドロップダウンをクリックして Latency distribution に変更しましょう。
重要:Cards display の横にある設定アイコンをクリックして、P50 と P99 のメトリクスを追加します。
ここでは、poor クレジットスコアのリクエストが遅く実行されていることがわかります。P50、P90、P99の時間は約3秒で、これはユーザーが待つには長すぎ、他のリクエストよりもはるかに遅いです。
また、exceptional クレジットスコアの一部のリクエストも遅く実行されていることがわかります。P99の時間は約5秒ですが、P50の応答時間は比較的速いです。
Dynamic Service Maps を使用する リクエストに関連付けられたクレジットスコアカテゴリがパフォーマンスとエラー率に影響を与える可能性があることがわかったので、インデックスされたタグを活用する別の機能を確認しましょう:Dynamic Service Maps です。
Dynamic Service Mapsを使用すると、特定のサービスをタグ別に分解できます。例えば、APM をクリックし、次に Service Map をクリックしてサービスマップを表示しましょう。
creditcheckservice をクリックします。次に、右側のメニューで Breakdown というドロップダウンをクリックし、credit.score.category タグを選択します。
この時点で、サービスマップは動的に更新され、creditcheckservice に到達するリクエストのパフォーマンスがクレジットスコアカテゴリ別に分解されて表示されます:
このビューにより、good と fair のクレジットスコアのパフォーマンスは優れている一方、poor と exceptional のスコアははるかに遅く、impossible のスコアはエラーになることが明確にわかります。
発見事項 Tag Spotlight により、このサービスを担当するエンジニアがさらに調査すべきいくつかの興味深いパターンが明らかになりました:
なぜすべての impossible クレジットスコアリクエストがエラーになるのか? なぜすべての poor クレジットスコアリクエストが遅く実行されるのか? なぜ一部の exceptional リクエストが遅く実行されるのか? SREとして、このコンテキストをエンジニアリングチームに伝えることは、彼らの調査に非常に役立ちます。サービスが「時々遅い」と単に伝えるよりも、はるかに迅速に問題を追跡できるからです。
興味があれば、creditprocessorservice のソースコードを確認してください。impossible、poor、exceptionalのクレジットスコアを持つリクエストは異なる方法で処理されており、そのため我々が発見したエラー率とレイテンシの違いが生じていることがわかります。
アプリケーションで見られた動作は、モダンなクラウドネイティブアプリケーションでは一般的なものです。サービスに渡される異なる入力が異なるコードパスにつながり、その一部がパフォーマンスの低下やエラーを引き起こします。例えば、実際のクレジットチェックサービスでは、低いクレジットスコアになるリクエストは、リスクをさらに評価するために別のダウンストリームサービスに送信される場合があり、高いスコアになるリクエストよりも遅く実行されたり、より高いエラー率に遭遇したりする可能性があります。
まとめ 2 minutes
このワークショップでは、以下の概念についてハンズオン形式で学びました:
Helmを使用して Splunk Distribution of the OpenTelemetry Collector をデプロイする方法 OpenTelemetry でアプリケーションを計装する方法OpenTelemetry SDKを使用してアプリケーションから関心のあるタグをキャプチャする方法 Troubleshooting MetricSets を使用して Splunk Observability Cloud でタグをインデックスする方法Tag Spotlight と Dynamic Service Map 機能を使用して Splunk Observability Cloud でタグを活用し、「未知の未知」を発見する方法このワークショップで共有したベストプラクティスに沿ってタグを収集することで、Splunk Observability Cloud に送信するデータからさらに多くの価値を得ることができます。このワークショップを完了した今、自分のアプリケーションからタグの収集を開始するために必要な知識を身につけました!
今日からタグのキャプチャを始めるには、サポートされている各言語でタグを追加する方法 を確認し、次にTag Spotlightで分析できるように Troubleshooting MetricSets を作成する方法 を確認してください。さらにヘルプが必要な場合は、Splunk エキスパートに問い合わせ てください。
また、他の言語や環境がOpenTelemetryでどのように計装されているかを確認するには、
Splunk OpenTelemetry Examples GitHub リポジトリ を参照してください。
Tip for Workshop Facilitator(s)ワークショップが完了したら、以前に credit.score.category タグ用に作成したAPM MetricSetを削除することを忘れないでください。