メトリクス & テレメトリ
metrics モジュールは、アプリケーションのカウンター、ゲージ、ヒストグラム観測値を記録します。
このページは API リファレンスです。各スニペットは一度に 1 つの観測値を示し、コレクターのエラーを伝播します。
各関数は、アクティブなコレクターへ観測値を渡した後に true, nil を返します。実行コンテキストにコレクターがない場合は、nil と再試行不可の errors.INTERNAL エラーを返します。
ラベルは省略できます。キーと値の両方が文字列であるエントリだけを記録し、それ以外は暗黙に無視します。テーブルではない labels 引数は、ラベルが指定されなかったものとして扱います。
メトリクス名はローカル検証なしで転送されます。
ロード
local metrics = require("metrics")
カウンター
metrics.counter_inc
カウンターを 1 増やします。
local recorded, err = metrics.counter_inc("requests_total", {method = "POST"})
if err then return nil, err end
return recorded
| パラメータ | 型 | 説明 |
|---|---|---|
name |
string | メトリクス名 |
labels |
table? | ラベルのキーバリューペア |
戻り値: boolean, error
metrics.counter_add
カウンターに値を加算します。
local recorded, err = metrics.counter_add("bytes_total", 1024, {direction = "out"})
if err then return nil, err end
return recorded
| パラメータ | 型 | 説明 |
|---|---|---|
name |
string | メトリクス名 |
value |
number | 加算する値 |
labels |
table? | ラベルのキーバリューペア |
戻り値: boolean, error
ランタイムは値を変更せず転送し、正の値であることを要求しません。
ゲージ
metrics.gauge_set
ゲージを現在値に設定します。
local recorded, err = metrics.gauge_set("queue_depth", 42, {queue = "emails"})
if err then return nil, err end
return recorded
| パラメータ | 型 | 説明 |
|---|---|---|
name |
string | メトリクス名 |
value |
number | 現在の値 |
labels |
table? | ラベルのキーバリューペア |
戻り値: boolean, error
metrics.gauge_inc
ゲージを 1 増やします。
local recorded, err = metrics.gauge_inc("connections", {pool = "db"})
if err then return nil, err end
return recorded
| パラメータ | 型 | 説明 |
|---|---|---|
name |
string | メトリクス名 |
labels |
table? | ラベルのキーバリューペア |
戻り値: boolean, error
metrics.gauge_dec
ゲージを 1 減らします。
local recorded, err = metrics.gauge_dec("connections", {pool = "db"})
if err then return nil, err end
return recorded
| パラメータ | 型 | 説明 |
|---|---|---|
name |
string | メトリクス名 |
labels |
table? | ラベルのキーバリューペア |
戻り値: boolean, error
ヒストグラム
metrics.histogram
ヒストグラム観測値を記録します。
local recorded, err = metrics.histogram("duration_seconds", 0.123, {method = "GET"})
if err then return nil, err end
return recorded
| パラメータ | 型 | 説明 |
|---|---|---|
name |
string | メトリクス名 |
value |
number | 観測値 |
labels |
table? | ラベルのキーバリューペア |
戻り値: boolean, error
エラー
| 条件 | 種別 | 再試行可能 |
|---|---|---|
| コレクターが利用不可 | errors.INTERNAL |
いいえ |
無効な名前型または値型は、構造化エラーを返すのではなく Lua 引数エラーを発生させます。
エラーの処理についてはエラー処理を参照。