Alibaba Cloud Simple Log Service (SLS) は、ログ、メトリック、トレースなどのデータに対してインテリジェントな分析を提供します。モデルを呼び出して、分析結果を直接取得できます。主な特徴として、ログデータの固有表現抽出 (NER)、時系列データの異常検出、高レイテンシのトレーススパンの根本原因分析などがあります。
操作説明
この API エンドポイントは、中国 (上海) およびシンガポールリージョンでのみ利用可能です。 次の基本的な権限が必要です:
{
"Version": "1",
"Statement": [
{
"Action": [
"log:Get*"
],
"Resource": [
"acs:log:*:*:mlservice/sls_builtin_*"
],
"Effect": "Allow"
}
]
}
今すぐお試しください
テスト
RAM 認証
リクエスト構文
POST /ml/service/{serviceName}/analysis HTTP/1.1
リクエストパラメーター
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| serviceName |
string |
任意 |
サービス名。 列挙値:
|
sls_builtin_service_log_struct |
| allowBuiltin |
boolean |
任意 |
列挙値:
|
true |
| version |
string |
任意 |
アルゴリズムのバージョン番号。バージョンが異なると、対応するアルゴリズムも異なります。 |
v1 |
| body | MLServiceAnalysisParam |
任意 |
リクエスト構造体。 列挙値:
|
リクエストパラメーターはサービスによって異なります。詳細は次のとおりです:
ログの固有表現抽出 (sls_builtin_service_log_struct)
body.parameter の詳細
{
"is_struct": "true",
"use_gpu": "true/false",
"max_fields": "1"
}
is_struct が true の場合、ログは JSON 形式です。現在、このパラメーターは true にのみ設定できます。
use_gpu は GPU リソースを使用するかどうかを指定します。
max_fields は、ログが JSON 形式の場合に分析するフィールドの最大数を指定します。デフォルトでは、1 つのフィールドが分析されます。
body.input の詳細
[
{
"{column_name}": "{column_value}"
}
]
入力は JSON オブジェクトの配列で、各要素は次のとおりです:
column_name は JSON 形式のログのフィールド名です。
column_value は JSON 形式のログのフィールドの値です。
時系列異常検出 (sls_builtin_service_metric_anomaly)
body.parameter の詳細
{
"isOrdered": "true/false",
"keys": "[]",
"timeColumnName": "",
"analysisColumnNames": "[]",
"interval": "-1"
}
isOrdered は入力データが順序付けられているかどうかを指定します。入力時系列が時間で昇順にソートされている場合は、このパラメーターを true に設定します。それ以外の場合は、false に設定します。
interval は時系列の間隔を秒単位で指定します。たとえば、系列に 1 分あたり 1 つのデータポイントがある場合、このパラメーターを 60 に設定します。間隔が不明な場合は、このパラメーターを -1 に設定します。
timeColumnName は入力系列の時間ディメンションの名前を指定します。
analysisColumnNames は、入力系列で分析される数値特徴ディメンションの名前を指定します。これは、文字列にシリアル化する必要がある配列です。
keys は入力データのすべての列の名前を指定します。これは、文字列にシリアル化する必要がある配列です。
body.input の詳細
[
{
"{column_name}": "{column_value}"
}
]
入力は配列で、各要素は次のとおりです:
column_name は系列のフィールド名です。
column_value はフィールドの値です。{column_name} が {timeColumnName} と同じ場合、値は秒単位の UNIX タイムスタンプです。
高レイテンシのトレース検出 (sls_builtin_service_trace_rca)
body.parameter の詳細
{
"project": "",
"logstore": "",
"endpoint": "",
"role_arn": ""
}
project は、トレースデータが保存されている SLS のプロジェクトの名前を指定します。
logstore は、トレースデータが保存されている SLS の Logstore の名前を指定します。
endpoint は、プロジェクトが配置されているリージョンのエンドポイントを指定します。インターネットエンドポイントを使用する必要があります。同じリージョン内の内部エンドポイントにはアクセスできません。
role_arn は、リソースへの権限が付与されているロールの ARN を指定します。ETLRole または AuditRole の ARN を使用する必要があります。
body.input の詳細
[
{
"service": "",
"name": "",
"from_ts_sec": "",
"to_ts_sec": "",
"slo_ts_micro": "",
"batch_id": "",
"trace_ids": "[]"
}
]
入力は長さ 1 の配列です。パラメーターは次のように説明されます:
service は、診断対象の 1 つ以上の TraceID のサービス名を指定します。これは Logstore から取得できます。
name は、診断対象の 1 つ以上の TraceID のサービス名を指定します。これは Logstore から取得できます。
from_ts_sec は、分析の開始タイムスタンプを秒単位で指定します。
to_ts_sec は、分析の終了タイムスタンプを秒単位で指定します。
batch_id は、分析対象の TraceID の現在のバッチの名前を指定します。
trace_ids は、現在のリクエストの trace_id のリストを指定します。これは JSON シリアル化された文字列である必要があります。
レスポンスフィールド
|
フィールド |
型 |
説明 |
例 |
|
object |
返される構造体。 列挙値:
|
||
| status |
object |
タスクのステータス。 列挙値:
|
|
|
string |
デフォルトでは、このパラメーターは空で、すべてのステータスのタスクが返されます。サポートされているステータスは success、fail、および running です。 列挙値:
|
200 |
|
| data |
array<object> |
返されたデータ。 |
|
|
object |
データセット構造体。 |
||
|
string |
返された結果。 |
{'marker': ''} |
戻り値はサービスによって異なります。詳細は次のとおりです:
ログの固有表現抽出 (sls_builtin_service_log_struct)
data の詳細
[
{
"{column_name}": "{column_value}"
}
]
出力の各 JSON オブジェクトは、入力ログの JSON オブジェクトに対応します。各要素は次のとおりです:
column_name は、JSON 形式のログで分析されたフィールドの名前です。最大で max_fields のフィールドが分析されます。
column_value は、分析されたフィールドの値です。フィールド値の NER 結果は <ml_ner_${ner_type}></ml_ner_${ner_type}> タグで囲まれます。ここで、${ner_type} は特定の NER タイプです。
時系列異常検出 (sls_builtin_service_metric_anomaly)
data の詳細
[
{
"start": "",
"end": "",
"label": ""
}
]
start は、検出された異常間隔の開始時刻を指定します。
end は、検出された異常間隔の終了時刻を指定します。
- label は、現在の間隔で検出された異常のタイプを指定します。
SPIKE_UP_TYPE
SPIKE_DOWN_TYPE
TREND_UP_TYPE
TREND_DOWN_TYPE
MEANSHIFT_UPWARD_TYPE
MEANSHIFT_DOWNWARD_TYPE
高レイテンシのトレース検出 (sls_builtin_service_trace_rca)
data の詳細
[
{
"traceID": "",
"service": "",
"name": "",
"rootCauses": "[{}]"
}
]
traceID は、分析されたトレースの ID を指定します。
service は、トレースのルートノードのサービス名を指定します。
name は、トレースのルートノードの名前を指定します。
rootCauses は、トレースの高レイテンシの原因となったスパンのリストを指定します。これはシリアル化された文字列です。逆シリアル化すると、このフィールドの構造は次のようになります:
[
{
"spanID": "",
"service": "",
"name": "",
"host": "xxxx",
"predicateDuration": 10
}
]
例
成功レスポンス
JSONJSON
{
"status": {
"key": "200"
},
"data": [
{
"key": "{'marker': ''}"
}
]
}
エラーコード
完全なリストについては、「エラーコード」をご参照ください。
変更履歴
完全なリストについては、「変更履歴」をご参照ください。