Monasca 日志服务 API

日志

接收来自日志代理的日志。日志基本上是原始行,从物理资源收集而来,并带有维度信息。

POST
/v3.0/logs

发送日志

接受多个日志(即批量模式)。每个日志都可以用一组维度信息进行丰富。如果必要,可以指定一些维度作为全局维度(如果每个日志条目的维度之间存在大量重复,这尤其有用,可以使请求更小)

成功

代码

原因

204 - No Content

正常响应代码,一切按预期进行(甚至更好)。

错误

代码

原因

400 - 请求错误

发送的数据格式不正确。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

411 - 长度要求

请求中未找到 Content-Length 头部。

413 - 请求实体过大

发送的主体过大,无法处理。

422 - 无法处理的实体

日志属性必须包含消息。

422 - 无法处理的实体

创建信封失败。

503 - 服务不可用

服务器目前由于临时过载或计划维护而无法处理请求。在延迟一段时间后可能会得到缓解。

请求

名称

入参

类型

描述

维度 (可选)

body

对象

请求主体中发送的维度称为全局维度。每个维度适用于批量请求中发送的每个日志条目。维度是一个简单的映射(因此具有键值结构)。

版本 3.0 中新增

日志

body

对象

包含每个日志条目的数组,在批量请求中发送。

版本 3.0 中新增

示例 1:使用单个日志的简单请求

{
    "dimensions":{},
    "logs":[
        {
            "message":"msg1",
            "dimensions":{
                "component":"mysql",
                "path":"/var/log/mysql.log"
            }
        }
    ]
}

示例 2:一次发送多个日志

{
    "dimensions":{},
    "logs":[
        {
            "message":"msg1",
            "dimensions":{
                "component":"mysql",
                "path":"/var/log/mysql.log"
            }
        },
        {
            "message":"msg2",
            "dimensions":{
                "component":"monasca-api",
                "path":"/var/log/monasca/monasca-api.log"
            }
        },
        {
            "message":"msg3",
            "dimensions":{
                "component":"monasca-log-api",
                "path":"/var/log/monasca/monasca-log-api.log"
            }
        }
    ]
}

示例 3:为每个日志条目指定全局维度

{
    "dimensions":{
        "hostname":"mini-mon",
        "service":"monitoring"
    },
    "logs":[
        {
            "message":"msg1",
            "dimensions":{
                "component":"mysql",
                "path":"/var/log/mysql.log"
            }
        },
        {
            "message":"msg2",
            "dimensions":{
                "component":"monasca-api",
                "path":"/var/log/monasca/monasca-api.log"
            }
        }
    ]
}

响应

成功 POST 请求时,不返回主体内容

版本

健康检查

Monasca 日志 API 带有内置的健康检查机制。它有两种形式(简单和复杂)。

HEAD
/healthcheck

简单检查

简单检查仅在 API 启动并运行时才返回响应。它不返回任何数据,因为它仅适用于 `HEAD` 请求。

成功

代码

原因

204 - No Content

API 启动并正在运行。

GET
/healthcheck

复杂检查

# TODO(trebskit) 在 api-guide 中添加关于外围检查的说明

复杂检查不仅在 API 启动并运行时返回带有成功代码的响应,还会验证外围组件是否处于预期状态。

成功

代码

原因

200 - 正常

API 启动并正在运行。

错误

代码

原因

503 - 服务不可用

API 正在运行,但外围组件存在问题。

已弃用的 API

本节包含 Monasca 日志服务中已弃用的 API 参考。

日志

仅接受来自日志代理或其他客户端发送的单个日志条目。可以使用 JSON (application/json) 和文本 (text/plain) 格式的日志。

POST
/v2.0/log/single

发送日志

接受单个日志条目。

成功

代码

原因

204 - No Content

正常响应代码,一切按预期进行(甚至更好)。

错误

代码

原因

422 - 无法处理的实体

需要维度信息。

422 - 无法处理的实体

应用程序类型 {type} 必须少于或等于 {length} 个字符。

422 - 无法处理的实体

维度名称 {name} 必须少于或等于 255 个字符。

422 - 无法处理的实体

维度名称 {name} 不能以下划线 (_) 开头。

422 - 无法处理的实体

维度名称 {name} 可能不包含: “> < = { } ( ) ‘ ” , ; &”。

422 - 无法处理的实体

维度名称不能为空。

422 - 无法处理的实体

维度值 {value} 必须少于或等于 255 个字符。

422 - 无法处理的实体

维度值不能为空。

422 - 无法处理的实体

日志属性必须包含消息。

422 - 无法处理的实体

创建信封失败。

503 - 服务不可用

服务器目前由于临时过载或计划维护而无法处理请求。在延迟一段时间后可能会得到缓解。

请求

名称

入参

类型

描述

log_json

body

对象

以 application/json 格式指定的单个日志条目

log_text

body

字符串

以 text/plain 格式指定的单个日志条目

X_Dimensions

标头

dict

一个字典,由 (key, value) 对组成,用于唯一标识日志。

版本 2.0 中新增

X_Application_Type

标头

字符串

一个字符串值,表示生成给定日志条目的应用程序

版本 2.0 中新增

示例 1:使用单个日志的简单请求 (json)

{
  "message":"Hello World!"
}

示例 2:使用单个日志的简单请求 (text)

Hello World

响应

成功 POST 请求时,不返回主体内容