パリ近郊の小さな拠点で、監視アラートをSlackに流す仕組みを運用しています。構成はPrometheus + Alertmanager、通知はSlackのIncoming Webhook。フランス側の運用担当者向けに、当初はアラート本文をフランス語で書いていました。ところが月に数回の障害で、日本語側の当番が本文を読めず、一次切り分けが遅れることが続きました。
やったことは単純で、アラート名とラベルを英語の固定キーに戻し、フランス語の説明は別フィールドに逃がしました。Alertmanager側はこうです。
route:
receiver: slack-fr
group_by: ['alertname', 'service']
receivers:
- name: slack-fr
slack_configs:
- api_url: 'https://hooks.slack.com/services/XXX'
title: '{{ .CommonLabels.alertname }} / {{ .CommonLabels.service }}'
text: '{{ .CommonAnnotations.summary_en }}\n{{ .CommonAnnotations.summary_fr }}'
ルール側は summary_en と summary_fr の両方を持たせ、alertname は英数字とアンダースコアだけに制限しました。フランス語の自由文は summary_fr にのみ入れ、検索やフィルタには使わせない方針です。
なぜこうしたか。障害対応で最初に必要なのは「何のアラートか」を機械的に判別できることで、自然文の言語は二次情報です。キーを英語に固定すると、Slackの検索、jqでの抽出、チケットへのコピペがすべて同じ文字列で通ります。代償は、フランス側の担当者が英語キーを覚える負担と、summary_fr の更新漏れです。実際、フランス語側だけ更新して英語側が古いままのアラートが一度出ました。
失效するのは、アラート名自体が現場の口語と結びついている場合です。たとえば現地で「coupure」と呼んでいる回線断を link_down に変えると、電話での会話が一瞬通じなくなります。うちでは用語集を別に作り、口語とキーの対応だけを紙で共有してしのいでいます。あと、Slackのスレッドでフランス語で会話が始まると、日本語側は結局読めません。これは通知の設計では解決できない部分です。
同じように、現地語の自然文と機械可読なキーを分けている運用はありますか。分ける単位をアラート名にしているのか、それともラベルにしているのか、現場の呼び方とどう折り合いをつけているか知りたいです。
0 条评论
还没有评论,写下第一条。