目录

  • 需求
  • 监控指标推送
  • 具体操作
  • 相关链接


需求

  • 由于一些特殊的需求对接, 不能使用我们自己的监控服务告警, 只能对接京东云的监控告警。因此向京东云推送监控告警信息成了最终要的问题。

监控指标推送

  • 官方推荐使用京东云SDK, 编写推送代码来推送。
  • AK和SK, 这个是京东云给用户颁发的认证密钥和加密密钥。 让京东云那边可以判断出是你推送的这个告警, 而不是别的客户推送的。
  • 京东云SDK支持各种语言版本的, 我才用的是python版本的。
  • 京东云推送的域, 分为公网和内网的, 默认是公网的。 如果使用内网的需要域名。 (我用的是内网的)

具体操作

  • 安装京东云SDK
  • pip install -u jdcloud-sdk
  • 编写测试脚本
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time   : 2023/6/19 15:22
# @Author : shanwen.ren@xiaoying.com
# @Notice : 监控测试案例
import time
from jdcloud_sdk.core.config import Config
from jdcloud_sdk.core.const import SCHEME_HTTP
from jdcloud_sdk.core.credential import Credential
from jdcloud_sdk.services.monitor.client.MonitorClient import MonitorClient
from jdcloud_sdk.services.monitor.apis.PutMetricDataRequest import *

# 准入密钥和加密密钥 准入密钥是京东云鉴权小赢身份用的, 加密密钥是通信认证需要的
access_key = 'XXXXX'
secret_key = 'XXXXX'

# 实例化身份认证对象
credential = Credential(access_key, secret_key)

# 实例化配置对象
config = Config('monitor.internal.cn-north-1.jdcloud-api.com', SCHEME_HTTP, 20)

# 实例化监控客户端对象
client = MonitorClient(credential, config)

metricDataList = [
    {
        "namespace": "risk_test",  # 命名空间
        "metric": "vm.mem.usage1",  # 指标名称
        "dimensions": {  # 维度
            "host": "1.2.3.23",
            "datacenter": "cn-north-1"
        },
        "timestamp": int(time.time()),  # 时间戳
        "type": 1,  # 类型: 1: 原始数据
        "values": {  # 值
            "value": "12342213"
        }
    }
]

if __name__ == '__main__':
    parameters = PutMetricDataParameters()
    parameters.setMetricDataList(metricDataList)
    request = PutMetricDataRequest(parameters=parameters)
    resp = client.send(request)
  • 如果出现IP限制提示, 需要让京东云侧或自己的运维看看是不是哪里的网络有限制。
  • 京东云自定义监控配置监控图表。
  • 配置该指标的告警。

相关链接

  • 京东云监控使用介绍:https://docs.jdcloud.com/cn/monitoring/product-overview
  • 京东云OpenAPI使用方式:https://docs.jdcloud.com/cn/common-declaration/api/introduction
  • 京东云SDK使用方式:https://docs.jdcloud.com/cn/sdk/python
  • 京东云Pyhton SDKdemo案例:https://github.com/jdcloud-api/jdcloud-sdk-python/tree/master/demo
  • 京东云监控接口:https://docs.jdcloud.com/cn/monitoring/api/putmetricdata