Apache SkyWalking是分布式系統的應用程序性能監視工具(Application Performance Management,APM),專(zhuān)為微服務(wù)、云原生架構和基于容器(Docker、K8s、Mesos)架構而設計。
它提供了分布式追蹤、服務(wù)網(wǎng)格遙測分析、度量聚合和可視化一體化解決方案。
Apache SkyWalking告警是由一組規則驅動(dòng),這些規則定義在config/alarm-settings.yml
文件中。
告警規則的定義分為三部分。
告警規則有兩種類(lèi)型,單獨規則(Individual Rules)和復合規則(Composite Rules),復合規則是單獨規則的組合。
單獨規則主要有以下幾點(diǎn):
標簽的設置必須把數據存儲在meter-system中,例如:Prometheus, Micrometer。以上四個(gè)標簽設置必須實(shí)現LabeledValueHolder
接口。
對于多個(gè)值指標,例如percentile,閾值是一個(gè)數組。像value1
value2
value3
value4
value5
這樣描述。
每個(gè)值可以作為度量中每個(gè)值的閾值。如果不想通過(guò)此值或某些值觸發(fā)警報,則將值設置為 -
。
例如在percentile中,value1
是P50的閾值,value2
是P75的閾值,那么-,-,value3, value4, value5
的意思是,沒(méi)有閾值的P50和P75的percentile告警規則。
>
, >=
, <
, <=
, =
。true
或者false
,指定規則是否可以發(fā)送告警,或者僅作為復合規則的條件。舉個(gè)例子:
rules: service_resp_time_rule: metrics-name: service_resp_time op: ">" threshold: 1000 period: 10 count: 2 silence-period: 10 message: 服務(wù)【{name}】的平均響應時(shí)間在最近10分鐘內有2分鐘超過(guò)1秒 service_instance_resp_time_rule: metrics-name: service_instance_resp_time op: ">" threshold: 1000 period: 10 count: 2 silence-period: 10 message: 實(shí)例【{name}】的平均響應時(shí)間在最近10分鐘內有2分鐘超過(guò)1秒 endpoint_resp_time_rule: metrics-name: endpoint_avg threshold: 1000 op: ">" period: 10 count: 2 message: 端點(diǎn)【{name}】的平均響應時(shí)間在最近10分鐘內有2分鐘超過(guò)1秒
文章持續更新,微信搜索「萬(wàn)貓學(xué)社」第一時(shí)間閱讀,關(guān)注后回復「電子書(shū)」,免費獲取12本Java必讀技術(shù)書(shū)籍。
復合規則僅適用于針對相同實(shí)體級別的告警規則,例如都是服務(wù)級別的告警規則:service_percent_rule && service_resp_time_percentile_rule
。
不可以編寫(xiě)不同實(shí)體級別的告警規則,例如服務(wù)級別的一個(gè)告警規則和端點(diǎn)級別的一個(gè)規則:service_percent_rule && endpoint_percent_rule
。
復合規則主要有以下幾點(diǎn):
_rule
結尾。&&
, ||
, ()
操作符。舉個(gè)例子:
rules: service_resp_time_rule: metrics-name: service_resp_time op: ">" threshold: 1000 period: 10 count: 2 silence-period: 10 message: 服務(wù)【{name}】的平均響應時(shí)間在最近10分鐘內有2分鐘超過(guò)1秒 service_sla_rule: metrics-name: service_sla op: "<" threshold: 8000 period: 10 count: 2 silence-period: 10 message: 服務(wù)【{name}】的成功率在最近10分鐘內有2分鐘低于80% composite-rules: comp_rule: expression: service_resp_time_rule && service_sla_rule message: 服務(wù)【{name}】在最近10分鐘內有2分鐘超過(guò)1秒平均響應時(shí)間超過(guò)1秒并且成功率低于80%
Webhook 要求一個(gè)點(diǎn)對點(diǎn)的 Web 容器。告警的消息會(huì )通過(guò) HTTP 請求進(jìn)行發(fā)送,請求方法為 POST
,Content-Type
為 application/json
,JSON 格式包含以下信息:
alarm-settings.yml
中配置的規則名。舉個(gè)例子:
[{ "scopeId": 1, "scope": "SERVICE", "name": "one-more-service", "id0": "b3JkZXItY2VudGVyLXNlYXJjaC1hcGk=.1", "id1": "", "ruleName": "service_resp_time_rule", "alarmMessage": "服務(wù)【one-more-service】的平均響應時(shí)間在最近10分鐘內有2分鐘超過(guò)1秒", "startTime": 1617670815000 }, { "scopeId": 2, "scope": "SERVICE_INSTANCE", "name": "e4b31262acaa47ef92a22b6a2b8a7cb1@192.168.30.11 of one-more-service", "id0": "dWF0LWxib2Mtc2VydmljZQ==.1_ZTRiMzEyNjJhY2FhNDdlZjkyYTIyYjZhMmI4YTdjYjFAMTcyLjI0LjMwLjEzOA==", "id1": "", "ruleName": "instance_jvm_young_gc_count_rule", "alarmMessage": "實(shí)例【e4b31262acaa47ef92a22b6a2b8a7cb1@192.168.30.11 of one-more-service】的YoungGC次數在最近10分鐘內有2分鐘超過(guò)10次", "startTime": 1617670815000 }, { "scopeId": 3, "scope": "ENDPOINT", "name": "/one/more/endpoint in one-more-service", "id0": "b25lcGllY2UtYXBp.1_L3RlYWNoZXIvc3R1ZGVudC92aXBsZXNzb25z", "id1": "", "ruleName": "endpoint_resp_time_rule", "alarmMessage": "端點(diǎn)【/one/more/endpoint in one-more-service】的平均響應時(shí)間在最近10分鐘內有2分鐘超過(guò)1秒", "startTime": 1617670815000 }]
告警消息將使用 Protobuf
類(lèi)型通過(guò)gRPC遠程方法發(fā)送。消息格式的關(guān)鍵信息定義如下:
syntax = "proto3"; option java_multiple_files = true; option java_package = "org.apache.skywalking.oap.server.core.alarm.grpc"; service AlarmService { rpc doAlarm (stream AlarmMessage) returns (Response) { } } message AlarmMessage { int64 scopeId = 1; string scope = 2; string name = 3; string id0 = 4; string id1 = 5; string ruleName = 6; string alarmMessage = 7; int64 startTime = 8; } message Response { }
您需要遵循并創(chuàng )建新的Webhooks。
如果您按以下方式配置了Slack Incoming Webhooks,則告警消息將按 Content-Type
為 application/json
通過(guò)HTTP的 POST
方式發(fā)送。
舉個(gè)例子:
slackHooks: textTemplate: |- { "type": "section", "text": { "type": "mrkdwn", "text": ":alarm_clock: *Apache Skywalking Alarm* \n **%s**." } } webhooks: - https://hooks.slack.com/services/x/y/z
只有微信的企業(yè)版才支持 Webhooks ,如何使用微信的 Webhooks 可參見(jiàn)。
如果您按以下方式配置了微信的 Webhooks ,則告警消息將按 Content-Type
為 application/json
通過(guò)HTTP的 POST
方式發(fā)送。
舉個(gè)例子:
wechatHooks: textTemplate: |- { "msgtype": "text", "text": { "content": "Apache SkyWalking 告警: \n %s." } } webhooks: - https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=dummy_key
您需要遵循并創(chuàng )建新的Webhooks。為了安全起見(jiàn),您可以為Webhook網(wǎng)址配置可選的密鑰。
如果您按以下方式配置了釘釘的 Webhooks ,則告警消息將按 Content-Type
為 application/json
通過(guò)HTTP的 POST
方式發(fā)送。
舉個(gè)例子:
dingtalkHooks: textTemplate: |- { "msgtype": "text", "text": { "content": "Apache SkyWalking 告警: \n %s." } } webhooks: - url: https://oapi.dingtalk.com/robot/send?access_token=dummy_token secret: dummysecret
微信掃描二維碼,關(guān)注java 技術(shù)迷,回復「電子書(shū)」,免費獲取Java必讀技術(shù)書(shū)籍。
到此這篇關(guān)于A(yíng)pache SkyWalking 告警配置指南的文章就介紹到這了,更多相關(guān)SkyWalking 告警配置內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站