OpenTelemetry のサービスという概念について
by
azukiazusa
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
OpenTelemetry のサービス という概念について azukiazusa
Slide 2
Slide 2 text
自己紹介 ● Web フロントエンドが得意 ● https://azukiazusa.dev/ ● 趣味 ○ 読書 ○ 麻雀 ○ ポーカー azukiazusa
Slide 3
Slide 3 text
OpenTelemetry における サービスとは
Slide 4
Slide 4 text
テレメトリが計装された アプリケーションの 名前やバージョンを表す属性
Slide 5
Slide 5 text
http.requests.total{service.name=”payment”}
Slide 6
Slide 6 text
Semantic Conventions (意味規則)
Slide 7
Slide 7 text
メトリック名、属性名などの 共通命名や要求レベルの定義
Slide 8
Slide 8 text
多くの規則がある ● HTTP ● DataBase ● Resource ● FaaS ● Exception ● …
Slide 9
Slide 9 text
例 ● HTTP サーバーリクエストの継続時間のメトリック ○ http.server.request.duration ● HTTP メソッドを表す属性 ○ http.request.method ● HTTP ステータスコードを表す属性 ○ http.response.status_code
Slide 10
Slide 10 text
もし Semantic Conventions がなかったら...
Slide 11
Slide 11 text
マイクロサービスのダッシュボード作るぞ!
Slide 12
Slide 12 text
アプリケーションでの計装は準備できてる! あとはクエリを書くだけ!
Slide 13
Slide 13 text
はぁ? こっちは http.request.method だけどあっちは method だから注意してね あ、このテレメトリどこから送信されるかわからないか らよろしく
Slide 14
Slide 14 text
言語のライブラリごとに属性の名前が違う... どういうクエリを書けばいいの...
Slide 15
Slide 15 text
よく使う属性は命名統一して! あとどのアプリケーションから来たデータかわかる 属性は必須にして!
Slide 16
Slide 16 text
Semantic Conventions は実 装間の差異をなくし共通化す る意味で重要
Slide 17
Slide 17 text
サービスは Resource を 表す属性
Slide 18
Slide 18 text
テレメトリを生成するエンティティの情報 ● 例えば、Kubernetes なら... ○ プロセス名 ○ Pod 名 ○ 名前空間 ○ Deployment 名 Resource
Slide 19
Slide 19 text
Service 属性 説明 service.name サービスの論理名 必須 service.version サービスのバージョン service.instance.id サービスインスタンスの ID 一意の文字列 である必要がある 実験的 service.namespace サービスのグループを区別する名前空 間。`service.namespace` 内で `service.name` は一意である 実験的
Slide 20
Slide 20 text
service.name は SDK によっ て必ず提供されていなければ ならない
Slide 21
Slide 21 text
ココに 注目
Slide 22
Slide 22 text
もしくは環境変数 OTEL_SERVICE_NAME
Slide 23
Slide 23 text
● service.name は必須の属性だが、SDK を初期化する 際の `resource` は必須ではない ● `resource` が指定されない場合 `service.name` は `unknown_service:` + プロセス実行可能ファイルの 名前になる ○ `unknown_service:bash` SDK 使用時の注意点
Slide 24
Slide 24 text
service.name は必ず指定すべき
Slide 25
Slide 25 text
監視バックエンドも service.name が指定されて いること前提の UI となって ることが多い
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
No content
Slide 28
Slide 28 text
● OpenTelemetry におけるサービスは Semantic Conventions で定義されている属性 ● テレメトリを送信するサービスの情報を表す ● サービスの名前を表す `service.name` は必ず指定し たほうがいい まとめ