目录
- 需求
- 监控指标推送
- 具体操作
- 相关链接
需求
- 由于一些特殊的需求对接, 不能使用我们自己的监控服务告警, 只能对接京东云的监控告警。因此向京东云推送监控告警信息成了最终要的问题。
监控指标推送
- 官方推荐使用京东云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