すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:アラートテンプレートの組み込み関数

最終更新日:Aug 29, 2024

新しいアラートテンプレートは組み込み関数をサポートします。 組み込み関数を使用して、アラート通知の形式とスタイルを設定できます。 このトピックでは、組み込み関数の構文について説明し、組み込み関数の使用方法の例を示します。

一般的な関数

数値関数

関数

説明

フィルター

float (値、デフォルト=0.0)

整数または文字列を浮動小数点数に変換します。

デフォルトでは、変換が失敗した場合、関数は0.0を返します。 defaultパラメーターを使用して、変換が失敗した場合のカスタム戻り値を指定することもできます。

対応

  • {{ float("123") }} によって返される結果は123.0です。

  • {{ float("foo") }} によって返される結果は0.0です。

  • {{ float("foo", default=1.23) }} によって返される結果は1.23です。

int (値、デフォルト=0)

文字列または数値を整数に変換します。

デフォルトでは、変換が失敗した場合、関数は0を返します。 defaultパラメーターを使用して、変換が失敗した場合のカスタム戻り値を指定することもできます。

対応

  • {{ int(1.23) }} によって返される結果は1です。

  • {{ int("1.23") }} で返される結果は1です。

  • {{ int("foo") }} によって返される結果は0です。

  • {{ int("foo", default=5) }} によって返される結果は5です。

長さ (値)

文字列、リスト、タプルなどのオブジェクト内の要素の長さまたは数を取得します。

対応

  • {{ length("foo") }} で返される結果は3です。

  • {{ length([1,2]) }} によって返される結果は2です。

  • {{ length({"foo": "bar"}) }} で返される結果は1です。

abs (値)

数値の絶対値を取得します。

対応

{{ abs(-1) }} によって返される結果は1です。

min (値)

指定した値の最小値を取得します。

対応

{{ min([1,3, 2]) }} によって返される結果は1です。

max (値)

指定した値の最大値を取得します。

対応

{{ max([1,3, 2]) }} によって返される結果は3です。

ceil (値)

最も近い整数までの数を丸めます。

対応

{{ ceil(1.23) }} によって返される結果は2です。

フロア (値)

数値を最も近い整数まで丸めます。

対応

{{ floor(1.23) }} によって返される結果は1です。

ラウンド (値, 1)

数値を最も近い整数に丸めます。

1は、小数点第1位を保持することを示す。

対応

  • {{ round(1.23) }} によって返される結果は1です。

  • {{ round(1.56) }} によって返される結果は2です。

  • {{ round(1.56, 1) }} によって返される結果は1.6です。

sum (値)

指定した値の合計を取得します。

対応

{{ sum([1,2, 3]) }} によって返される結果は6です。

文字列関数

関数

説明

フィルター

文字列 (値)

オブジェクトを文字列に変換します。

対応

{{ string(1.23) }} によって返される結果は1.23です。

値1.23は文字列です。

capitalize(value)

文字列の最初の文字を大文字に変換し、文字列の他の文字を小文字に変換します。

対応

{{ capitalize("heLLO World") }} によって返される結果はHello worldです。

lower(value)

文字列の大文字を小文字に変換します。

対応

{{ lower("FOO") }} によって返される結果はfooです。

upper (値)

文字列の小文字を大文字に変換します。

対応

{{ upper("foo") }} によって返される結果はFOOです。

title(value)

文字列をタイトルケースに変換します。 タイトルケースでは、文字列の各単語の最初の文字は大文字で、各単語の他の文字は小文字です。

対応

{{ title("hello world") }} で返される結果はHello Worldです。

トリム (値)

文字列の先頭と末尾にある空の文字を削除します。

対応

{{ trim("foo\n") }} によって返される結果はfooです。

replace(value, old, new)

文字列の指定された文字を新しい文字に置き換えます。

非対応

{{ replace("foo", "oo", "ly") }} によって返される結果はflyです。

wordcount (値)

文字列内の単語数をカウントします。

対応

{{ wordcount("hello world") }} によって返される結果は2です。

truncate(value, n, end='')

文字列を切り捨てます。

  • n変数は、文字列に保持する文字数を指定します。

  • end変数は、文字列が切り捨てられた後に文字列に追加する部分文字列を指定します。

非対応

  • {{ truncate("foo bar", 5) }} によって返される結果はfoo bです。

  • {{ truncate("foo bar", 5, end="...") }} によって返される結果はfoo b...

引用符 (値)

文字列を二重引用符 ("") で囲みます。

対応

  • {{ quote(123) }} によって返される結果は「123」です。

  • {{ quote("foo") }} によって返される結果は "foo" です。

インデント (値、n=4)

文字列の各行に指定したスペース数を挿入します。 デフォルトでは、文字列の各行は4つのスペースでインデントされます。

nパラメーターを使用して、文字列の各行をインデントするスペースの数を指定できます。

対応

  • {{ "foobar\n" }}{{ indent("foo\nbar") }}} の場合、次の結果が返されます:

    foobar
        foo
        bar
  • {{ "foobar\n" }}{{ indent("foo\nbar", 2) }}} の場合、次の結果が返されます:

    foobar
      foo
      bar

startswith (値、プレフィックス)

文字列が指定された部分文字列で始まるかどうかをチェックします。

対応

{{ startswith("football", "foo") }} によって返された結果はtrueです。

endswith (値、サフィックス)

文字列が指定された部分文字列で終わるかどうかをチェックします。

対応

{{ endswith("football", "all") }} によって返された結果はtrueです。

removepfix (value, prefix)

文字列の先頭から指定した部分文字列を削除します。

対応

{{removepfix ("football", "foot") }} によって返される結果はballです。

removesuffix (値、サフィックス)

文字列の末尾から指定した部分文字列を削除します。

対応

{{ removesuffix("football", "ball") }} によって返される結果はfootです。

スプリット (value, sep=なし, maxsplit=-1)

文字列を分割します。

  • sepパラメーターを使用して、文字列の分割に使用する区切り文字を指定できます。

  • maxsplitパラメーターを使用して、文字列を分割できる最大回数を指定できます。

    maxsplitパラメーターを設定しない場合、またはmaxsplitパラメーターを-1に設定した場合、文字列を分割できる回数は制限されません。

対応

  • {{ split('a b c') }} によって返される結果は、['a', 'b', 'c'] である。

  • {{ split('a-b-c', sep='-') }} によって返される結果は、['a', 'b', 'c'] です。

  • {{ split('a-b-c', sep='-', maxsplit=1) }} によって返される結果は ['a', 'b-c'] です。

  • {{ split('a<>b<>c', sep='<>') }} によって返される結果は、['a', 'b', 'c'] である。

リスト関数とオブジェクト関数

関数

説明

フィルター

列挙型 (値)

iterableオブジェクトをインデックス付きシーケンスに変換し、元の要素と元の要素の添字を一覧表示します。

非対応

{{ enumerate(["foo", "bar"]) }} によって返される結果は、[(0, 'foo'), (1, 'bar')] です。

リスト (値)

iterableオブジェクトをリストに変換します。

対応

  • {{ list(("foo", "bar")) }} によって返される結果は ['foo', 'bar'] です。

  • {{ list("foo") }} によって返される結果は ['f', 'o', 'o'] です。

dict(value)

辞書を作成します。 この関数は、{} を使用して辞書を作成する方法と同様に機能します。

非対応

{{ dict(foo=1, bar="hello") }} によって返される結果は、{'foo': 1, 'bar': 'hello'} です。

first(value)

リストの最初のアイテムを返します。

対応

{{ first([1,2, 3]) }} によって返される結果は1です。

last(value)

リストの最後の項目を返します。

対応

{{ last([1,2, 3]) }} によって返される結果は3です。

sort(value, reverse=true)

リストの要素をソートします。

リストの要素を逆の順序でソートする場合は、reverse=trueを指定します。

対応

  • {{ sort([3,1, 2]) }} によって返される結果は [1,2, 3] です。

  • {{ sort([3,1, 2], reverse=true) }} によって返される結果は [3,2, 1] です。

dictsort (値)

キーに基づいてオブジェクト内のキーと値のペアをソートし、ソートされたキーと値のペアで構成される配列を返します。

対応

  • alert.labelsフィールドの例:

    {
        "host": "host-1",
        "app": "nginx"
    }
  • アラートテンプレートでの関数の設定:

    {%- for key, val in dictsort(alert.labels) %}
    {{ key }}: {{ val }}
    {%- endfor %}
  • 結果:

    app: nginx
    host: host-1

join(value, d='')

指定した文字を使用して、リストの要素を結合します。

dパラメーターを使用して、リストの要素を結合するために使用する文字を指定できます。

対応

  • {{ join([1,2, 3]) }} によって返される結果は123です。

  • {{ join([1,2,3], ',') }} によって返される結果は、1,2,3である。

フォーマット関数

関数

説明

フィルター

escape_markdown (値)

Markdownで特殊文字を脱出します。

対応

によって返される結果は {{{ escape_markdown("__a__ ** b ** #c") }} です。&#95 ;&# 95;a&#95 ;&# 95;&#42 ;&# 42;b&#42 ;&# 42;&#35;c.

escape_html (値)

HTMLで特殊文字をエスケープします。

対応

{{ escape_html("<div>") }} によって返される結果は、<div> です。

to_json (値)

オブジェクトをJSON形式に変換します。

対応

  • {{ to_json("foo") }} によって返される結果は "foo" です。

  • {{ to_json(1.23) }} によって返される結果は1.23です。

  • {{ to_json(True) }} によって返された結果はtrueです。

  • {{ to_json(alert.labels) }} によって返される結果は、{"host": "host-1", "app": "nginx"} です。

parse_json (値)

文字列を解析し、JSON形式の値を返します。

対応

  • {{ parse_json('{"foo": "bar"}').foo }} によって返される結果はbarです。

  • {{ parse_json('[1,2, 3]')[1] }} によって返される結果は2です。

エンコード関数とデコード関数

関数

説明

フィルター

base64_encoding (値)

Base64を使用して入力値をエンコードします。

対応

{{ base64_encoding("foo") }} によって返される結果はZm9vです。

base64_decoding (値)

Base64を使用して入力値をデコードします。

対応

{{ base64_decoding("Zm9v") }} によって返される結果はfooです。

md5_encoding (値)

MD5を使用して入力値をエンコードします。

対応

{{ md5_encoding("foo") }} によって返される結果はacbd18db4cc2f85cedef654fccc4a4d8です。

url_encoding (値)

URLエンコーディングを使用して入力値をエンコードします。

対応

{{ url_encoding(" https://example.com?a=b&c=d") }} によって返される結果は、https % 3A % 2F % 2Fexample.com % 3Fa % 3Db % 26c % 3Ddです。

url_decoding (値)

URLデコードを使用して入力値をデコードします。

対応

{{ url_decoding("https % 3A % 2F % 2Fexample.com % 3Fa % 3Db % 26c % 3Dd") }} によって返される結果は、https://example.com ですか? a=b&c=dです。

日付と時間の関数

関数

説明

フィルター

parse_date(value, fmt="% Y-% m-% d % H:% M:% S")

入力値をtimestamp値を返すことができるdatetime式に変換します。

fmtパラメーターを使用して、datetime式の形式を指定できます。

対応

  • {{ parse_date(1629820800) }} によって返される結果は、2021-08-25 00:00:00です。

  • {{ parse_date("2021 | 08 | 25 | 00 | 00 | 00" 、fmt="% Y | % m | % d | % H | % M | % S") }} によって返される結果は、2021-08-25 00:00:00:00です。

format_date(value, tz=なし, fmt="% Y-% m-% d % H:% M:% S")

入力値をフォーマットします。

fmtパラメーターを使用して、datetime式の形式を指定できます。

入力値が日付オブジェクトでない場合、関数は入力値をフォーマットする前に入力値を日付オブジェクトに変換します。 日付と時刻の文字列の書式設定に使用されるディレクティブの詳細については、「日付と時刻の書式設定ディレクティブ」をご参照ください。 タイムゾーンの詳細については、「タイムゾーン」をご参照ください。

非対応

  • {{ format_date(1629820800) }} によって返される結果は、2021-08-25 00:00:00です。

  • {{ format_date(1629820800, fmt="% Y/% m/% d % H:% M:% S") }} によって返される結果は、2021/08/25 00:00:00です。

  • {{ format_date(1629820800, tz="UTC", fmt="% Y/% m/% d % H:% M:% S") }} によって返される結果は、2021/08/24 16:00:00です。

timestamp (値)

日付と時刻の文字列をUNIXタイムスタンプに変換します。

入力値が日付オブジェクトでない場合、関数は入力値をフォーマットする前に入力値を日付オブジェクトに変換します。

対応

  • {{ timestamp("2021-08-25 00:00:00") }} によって返される結果は1629820800です。

  • {{ timestamp(parse_date("2021-08-25 00:00:00")) }} によって返される結果は1629820800です。

format_duration(value, locale='en-US', sep='')

間隔をフォーマットします。 valueの単位は秒です。

localeパラメーターを使用して、テキストの説明を記述する言語を指定できます。 localeパラメーターの有効な値の詳細については、このトピックの「アラート関数のlocaleパラメーターの有効な値」をご参照ください。

対応

  • {{ 10 | format_duration }} によって返される結果は10秒です。

  • {{ 60 | format_duration }} によって返される結果は1mです。

  • {{ 3600 | format_duration }} によって返される結果は1時間です。

  • {{ 86400 | format_duration }} によって返される結果は1dです。

  • {{ 100000 | format_duration }} によって返される結果は1d3h46m40sです。

  • {{ 100000 | format_duration(sep=",") }} によって返される結果は、1d,3h,46m,40sです。

アラート機能

アラート機能は、構成するアラートコンテキストとアラートテンプレートによって異なります。 これらの関数は、次の情報を自動的に認識できます。

説明

アラート機能は、異なるアラートコンテキストで異なる結果を返すことができる。

  • トリガーされたアラートの重要度レベルやステータスなどのアラート属性。

  • アラートテンプレートの言語。 例えば、言語は、中国語または英語とすることができる。

  • DingTalkや電子メールなどの通知方法。

関数

説明

フィルター

format_type(alert.type, locale=なし)

アラートのタイプをテキストの説明に変換します。

localeパラメーターを使用して、テキストの説明を記述する言語を指定できます。 localeパラメーターの有効な値の詳細については、このトピックの「アラート関数のlocaleパラメーターの有効な値」をご参照ください。

対応

  • アラートのタイプはsls_pubです。

  • アラートテンプレートの関数の設定:

    {{ format_type(alert.type) }}
  • 結果:

    • localeパラメーターの値がen-USの場合、アラート通知のアラートのタイプはPub alertです。

format_region(alert.region, locale=なし)

アラートがトリガーされたリージョンをテキストの説明に変換します。

localeパラメーターを使用して、テキストの説明を記述する言語を指定できます。 localeパラメーターの有効な値の詳細については、このトピックの「アラート関数のlocaleパラメーターの有効な値」をご参照ください。

対応

  • アラートの地域はcn-hangzhouです。

  • アラートテンプレートの関数の設定:

    {{ format_region(alert.region) }}
  • 結果:

    • localeパラメーターの値がen-USの場合、アラート通知のアラートのリージョンは中国 (杭州) です。

format_severity(alert.severity, locale=None)

アラートの重大度レベルをテキストの説明に変換します。 この関数はカラーフォントをサポートします。

説明

DingTalk、Enterprise WeChat、Email、Message Centerのみがカラーフォントをサポートしています。

localeパラメーターを使用して、テキストの説明を記述する言語を指定できます。 localeパラメーターの有効な値の詳細については、このトピックの「アラート関数のlocaleパラメーターの有効な値」をご参照ください。

対応

  • アラートの重大度は6です。

  • アラートテンプレートの関数の設定:

    {{ format_severity(alert.severity) }}
  • 結果:

    • localeパラメーターの値がen-USの場合、アラート通知のアラートの重大度レベルは黄色の中程度です。

format_status(alert.status, locale=None)

アラートのステータスをテキストの説明に変換します。 この関数はカラーフォントをサポートします。

説明

DingTalk、Enterprise WeChat、Email、Message Centerのみがカラーフォントをサポートしています。 カラーフォントをサポートしていない通知方法を使用する場合、関数が呼び出された後もアラート通知は変更されません。

localeパラメーターを使用して、テキストの説明を記述する言語を指定できます。 localeパラメーターの有効な値の詳細については、このトピックの「アラート関数のlocaleパラメーターの有効な値」をご参照ください。

対応

  • アラートのステータスはFiringです。

  • アラートテンプレートの関数の設定:

    {{ format_status(alert.status) }}
  • 結果:

    • localeパラメーターの値がen-USの場合、アラート通知のアラートのステータスは [Firing] になります。

to_list (値)

配列またはオブジェクトをリストに変換します。

対応

  • 次のアラートラベルが追加されました:

    {
        "app": "nginx",
        "host": "host-1"
    }
  • アラートテンプレートの関数の設定:

    {{ to_list(alert.labels) }}
  • 結果:

    • アラート通知がMarkdown形式の場合、関数は次の結果を返します。

      この関数は、通知方法の設定に基づいて、結果の文字を自動的にエスケープできます。

      - app: nginx
      - host: host&#45;1
    • アラート通知がHTML形式の場合、関数は次の結果を返します

      <ul>
        <li>app: nginx</li>
        <li>host: host-1</li>
      </ul>
    • アラート通知がテキスト形式の場合、関数は次の結果を返します。

      [app: nginx][host: host-1]

annotations_to_list(alert.annotations, locale=None)

アラートの注釈をリストに変換します。 この関数は、to_list(alert.annotations) 関数に似ています。 これら2つの関数の違いは、annotations_to_list関数が標準名をテキスト記述に自動的に変換できることです。 たとえば、annotations_to_list関数は、titleフィールドをTitleに変換できます。 標準名の詳細については、このトピックの「アラート関数の注釈」セクションを参照してください。

localeパラメーターを使用して、テキストの説明を記述する言語を指定できます。 localeパラメーターの有効な値の詳細については、このトピックの「アラート関数のlocaleパラメーターの有効な値」をご参照ください。

対応

  • 次の注釈が追加されます:

    {
        "title": "NGINX access error",
        "desc": "80% year-on-year decrease on PVs",
        "cnt": "120"
    }
  • アラートテンプレートの関数の設定:

    {{ annotations_to_list(alert.annotations) }}
  • 結果:

    アラート通知がMarkdown形式の場合、関数は次の結果を返します。

    -Title: NGINX access error
    -Description: 80% year-on-year decrease on PVs
    - cnt: 120

blockquote (値)

アラート通知に参照スタイルを追加します。

  • アラート通知がMarkdown形式の場合、各行の先頭にクロージングアングルブラケット > が追加されます。

  • アラート通知がHTML形式の場合、<blockquote> タグはアラート通知の内容を囲むために使用されます。

対応

  • アラートテンプレートの関数の設定:

    {{ blockquote("foo\nbar") }}
  • 結果:

    • アラート通知がMarkdown形式の場合、関数は次の結果を返します:

      > foo
      > bar
    • アラート通知がHTML形式の場合、関数は次の結果

      <blockquote>
      foo
      bar
      </blockquote>

関連ドキュメント

  • アラート関数のlocaleパラメーターの有効な値

    有効値

    説明

    None or an empty string

    アラートテンプレートを構成するときに選択する言語を使用するように指定します。

    en-US

    英語を使用するように指定します。

    zh-CN

    中国語を使用するように指定します。

  • アラート関数の注釈

    注釈

    マッピング値 (English)

    title

    タイトル

    desc

    説明

    anomaly_score

    異常スコア

    job_id

    ジョブID

    model_id

    モデルID

    severity

    異常な重症度

    __pub_alert_app__

    アプリケーション

    __pub_alert_protocol__

    プロトコル

    __pub_alert_region__

    リージョン

    __pub_alert_service__

    サービス

    __ensure_url__

    異常確認

    __mismatch_url__

    偽陽性確認

    __plot_image__

    時系列チャート

    __host_ip__

    マシンアドレス

    __host_group_name__

    マシングループ名

    __cloud_monitor_type__

    CloudMonitor