sixty

すでに OpenTelemetry を使うチーム向け

すべての exporter はそのまま。release 検出を追加。

Collector には接続済み trace、runtime metric、service identity、fan-out がすでにあります。全 destination を残し、Sixty を OTLP/HTTP exporter として追加すると、同じ telemetry が release detector になります。

何を測るか

接続された HTTP・RPC・DB span
operation、dependency、latency 分布、self time、error、DB call、semantic attribute がある場合は row count を測ります。
有用な semantic histogram
trace がない場合、HTTP・RPC duration histogram が低精度の baseline になります。
runtime と pool の圧力
CPU、memory、event loop、GC pause、DB pool pressure が bounded context になります。
service・environment・release identity
service.name、deployment.environment.name、deployment.revision または service.version が比較対象を決めます。

何を見つけるか

どれも1つ前のリリースと比較されます。だから検出結果は、日付ではなく変更を名指しします。

release 後に遅くなった endpoint

operation・release ごとに分布を比較し、全体の traffic spike を code regression と誤認しません。

DB path の仕事量増加

接続 DB span が call count、round trip、latency、row の変化を示します。

複数 operation の背後にある saturation

CPU、memory、event loop、GC、pool pressure が共通 resource 原因を裏付けます。

遅くなった、または失敗し始めた dependency

outbound span は dependency のままで、自分の self time に混ざりません。

比較できない telemetry

service.name 欠落は partial reject、release 欠落や固定は ingest state として表示します。

フィードに何が届くか

読むためのダッシュボードではありません。検出1件につきカード1枚。数値と、それを変えたリリースと、コーディングエージェントが修正を書くのに必要な証拠が付いています。

apps/otel-demo-app が生成。native agent なしで OTEL のみの 6 release を public receiver に送ります。

latencyGET /checkout
118 ms286 ms2.4×

server span が遅くなり、同じ release で runtime saturation と pool pressure が上昇しました。

OTEL demo の 6 release

DB callGET /checkout
2 calls7 calls3.5×

接続 DB span が downstream work 増加を示し、endpoint との関係を保持します。

OTEL demo の 6 release

導入方法

既存 destination の隣に exporter を一つ追加します。receiver、processor、sampling、redaction、exporter を置き換えず、Sixty 用 log pipeline は追加しません。

exporters:
  otlphttp/sixty:
    endpoint: https://ingest.sixty.sh
    headers:
      Authorization: "Bearer ${env:SIXTY_OTEL_KEY}"
    compression: gzip
    retry_on_failure:
      enabled: true

service:
  pipelines:
    traces:
      exporters: [your_existing_exporter, otlphttp/sixty]
    metrics:
      exporters: [your_existing_exporter, otlphttp/sixty]

設定を検証し Collector だけ再起動します。異なる二つの release で traffic を送り、check_service で確認します。

できないこと

  • OTEL は native agent と同等ではありません。automatic function span、driver 固有 query 詳細、source attribution は generic trace から復元できません。優先順位は native、OTEL trace、OTEL metric です。
  • Sixty は trace warehouse ではなく、bounded sketch と exemplar を保持します。trace search や dashboard は提供しません。
  • log と任意 custom metric は partial success で拒否し、生の DB statement は保持しません。
  • multi-service gateway で一つの service.name を全体に付けず、application ごとに identity と release を設定します。

これが理由でここに来たのなら

最後の変更が何をしたのか、確かめてください。

試してみる

別のものを作っていますか? Node のサービス、Python のサービス、Go のサービス のページもあります — 見えるものが違うので、内容も違います。

OpenTelemetry trace と metric の release regression 検出 — Sixty