Skip to content

OpenTelemetryのスパン命名規則

以下の記事を読んだ。属性名ではなくスパン名であることに注意が必要。

これによると、スパン名は以下の形式を

{verb} {object}

verb は動詞なので sendget 等が該当する。基本的には小文字が使われているらしい。object は目的語なので requestpayment 等が該当する。verbobject にスペースを含む場合はアンダースコアで区切る。なので

  • send request
  • save metrics

は良い名前だが、

  • send_payment
  • savemetrics#1234

これらは良くない名前ということになる。

ここで #1234 のような詳細なIDを含めない理由は、カーディナリティを低く抑えられるためにそうなっている。代わりに、こういったIDの類は属性として与えられるべきである。

また、スペース区切りや小文字が使われている理由は、

GET /resource/path
INSERT into users values (...)

これらもスペース区切りだと書かれているけど理屈としてはだいぶ厳しいと思う。