性能计数器监控参考 :SqlServer 监控发布中未分发的命令数
但 open-falcon 不能监控 windows 性能计数器,因此只能自定义监控推送监控信息。open-falcon 使用 python 可以推送数据,因此需安装python(脚本使用python2.7)。
自定义push数据到open-falcon 参考:自定义push数据到open-falcon
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103#coding=gbk #python2.7.13 import requests import time import json import pymssql # 推送默认参数 # https://book.open-falcon.org/zh/usage/data-push.html endpoint = "KK-PC" metric = "repl." timestamp = int(time.time()) step = 300 value = 0 counterType = "GAUGE" tags = "db=" # 存储过程参数声明(保存到json中),用于执行sp_replmonitorsubscriptionpendingcmds """ EXEC distribution.sys.sp_replmonitorsubscriptionpendingcmds @publisher = N'publisher' ,@publisher_db = N'publisher_db' ,@publication = N'publication_name' ,@subscriber = N'subscriber' ,@subscriber_db = N'subscriber_db' ,@subscription_type =0 """ publicationlist = [ { "publisher": "KK-PC", "publisherdb": "DB01", "publication": "repl_test_DB01", "subscriber": "AA-PC", "subscriberdb": "DB01", }, { "publisher": "KK-PC", "publisherdb": "DB02", "publication": "repl_test_DB02", "subscriber": "AA-PC", "subscriberdb": "DB02", }, { "publisher": "KK-PC", "publisherdb": "DB03", "publication": "repl_test_DB03", "subscriber": "AA-PC", "subscriberdb": "DB03", }, { "publisher": "KK-PC", "publisherdb": "DB04", "publication": "repl_test_DB04", "subscriber": "AA-PC", "subscriberdb": "DB04", }, ] def main(): #连接数据库执行存储过程 #dbdate 保存存储过程结果;pbdate 保存名称 dbdate = [] pbdate = [] conn=pymssql.connect(host='.',database='distribution') cur=conn.cursor() for i in publicationlist: sql = """ EXEC distribution.sys.sp_replmonitorsubscriptionpendingcmds @publisher = N'"""+i["publisher"]+"""' ,@publisher_db = N'"""+i["publisherdb"]+"""' ,@publication = N'"""+i["publication"]+"""' ,@subscriber = N'"""+i["subscriber"]+"""' ,@subscriber_db = N'"""+i["subscriberdb"]+"""' ,@subscription_type =0""" cur.execute(sql) dbdate.append(cur.fetchall()) pbdate.append(i["publisher"]+"."+i["publisherdb"]) cur.close() conn.close() #配置推送的json格式,都添加到 payload 中 payload = [] data = {"endpoint":endpoint,"metric":metric,"timestamp":timestamp,"step":step,"value":value,"counterType":counterType,"tags":tags} for item,repl in zip(dbdate,pbdate): data = data.copy() data["endpoint"] = endpoint data["metric"] = metric + "pendingcmdcount" data["timestamp"] = timestamp data["step"] = step data["value"] = item[0][0] data["counterType"] = counterType data["tags"] = tags + repl payload.append(data) data = data.copy() data["endpoint"] = endpoint data["metric"] = metric + "estimatedprocesstime" data["timestamp"] = timestamp data["step"] = step data["value"] = item[0][1] data["counterType"] = counterType data["tags"] = tags + repl payload.append(data) r = requests.post("http://127.0.0.1:1988/v1/push", data=json.dumps(payload)) print r.text if __name__ == "__main__": main()
创建定时任务,每个5分钟执行一次。
最后
以上就是悦耳长颈鹿最近收集整理的关于Open-Falcon 使用 python 监控发布中未分发的命令数的全部内容,更多相关Open-Falcon内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复