国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

配置Skywalking告警

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2025-01-16 10:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

目錄

OpenTracing規(guī)范

為什么需要OpenTracing

什么是一個Trace

一個典型的Trace案例

Skywalking

功能介紹

整體架構(gòu)

Tracing、Logging和Metrics

.NET6 對接 Skywalking

添加依賴

編輯Skywalking配置文件skyapm.json

在launchSettings.json文件配置SK

在startup.cs文件中添加

安裝CLI(SkyAPM.DotNet.CLI)

自動生成skyapm.json文件

手動編寫skyapm.json

自動生成Skyapm.json

獲取traceId

自定義調(diào)用鏈路的信息

部署Skywalking環(huán)境

對接.NET6 程序

接入微服務(wù)網(wǎng)關(guān)+后臺微服務(wù)

添加依賴

拷貝配置文件并簡單修改

在launchsettings.json添加環(huán)境變量

啟動訂單微服務(wù)

添加依賴

拷貝配置文件并簡單修改

在launchsettings.json添加環(huán)境變量

修改網(wǎng)關(guān)配置文件,添加OrderServiceInstance微服務(wù)的路由

啟動網(wǎng)關(guān)

網(wǎng)關(guān)接入

訂單微服務(wù)接入

用戶微服務(wù)接入

配置Skywalking告警

配置告警規(guī)則

查閱配置規(guī)則文件及配置規(guī)則解讀

修改告警規(guī)則

告警API編寫

OpenTracing規(guī)范

OpenTracing是一種分布式系統(tǒng)鏈路跟蹤的設(shè)計原則、規(guī)范、標準。類似JDBC的規(guī)范,主要為了提供一套標準的JDBC API。OpenTracing也是一樣,是為了統(tǒng)一提供一套鏈路追蹤的標準API,所制定的一種規(guī)范。OpenTracing通過提供平臺無關(guān)、廠商無關(guān)的API,使得開發(fā)人員能夠方便的添加(或更換)追蹤系統(tǒng)的實現(xiàn)。

為什么需要OpenTracing

OpenTracing通過提供平臺無關(guān)、廠商無關(guān)的API,使得開發(fā)人員能夠方便的添加(或更換)追蹤系統(tǒng)的實現(xiàn)。 OpenTracing提供了用于運營支撐系統(tǒng)的和針對特定平臺的輔助程序庫。

什么是一個Trace

在廣義上,一個trace代表了一個事務(wù)或者流程在(分布式)系統(tǒng)中的執(zhí)行過程。在OpenTracing標準中,trace是多個span組成的一個有向無環(huán)圖(DAG),每一個span代表trace中被命名并計時的連續(xù)性的執(zhí)行片段。

0d2fe81c-d32c-11ef-9310-92fbcf53809c.png

分布式追蹤中的每個組件都包含自己的一個或者多個span。例如,在一個常規(guī)的RPC調(diào)用過程中,OpenTracing推薦在RPC的客戶端和服務(wù)端,至少各有一個span,用于記錄RPC調(diào)用的客戶端和服務(wù)端信息。

0d42c360-d32c-11ef-9310-92fbcf53809c.png

一個父級的span會顯示的并行或者串行啟動多個子span。在OpenTracing標準中,甚至允許一個子span有個多父span(例如:并行寫入的緩存,可能通過一次刷新操作寫入動作)。

一個典型的Trace案例

0d50782a-d32c-11ef-9310-92fbcf53809c.png

在一個分布式系統(tǒng)中,追蹤一個事務(wù)或者調(diào)用流一般如上圖所示。雖然這種圖對于看清各組件的組合關(guān)系是很有用的,但是,它不能很好顯示組件的調(diào)用時間,是串行調(diào)用還是并行調(diào)用,如果展現(xiàn)更復(fù)雜的調(diào)用關(guān)系,會更加復(fù)雜,甚至無法畫出這樣的圖。另外,這種圖也無法顯示調(diào)用間的時間間隔以及是否通過定時調(diào)用來啟動調(diào)用。一種更有效的展現(xiàn)一個典型的trace過程,如下圖所示:

0d5fbed4-d32c-11ef-9310-92fbcf53809c.png

這種展現(xiàn)方式增加顯示了執(zhí)行時間的上下文,相關(guān)服務(wù)間的層次關(guān)系,進程或者任務(wù)的串行或并行調(diào)用關(guān)系。這樣的視圖有助于發(fā)現(xiàn)系統(tǒng)調(diào)用的關(guān)鍵路徑。通過關(guān)注關(guān)鍵路徑的執(zhí)行過程,項目團隊可能專注于優(yōu)化路徑中的關(guān)鍵位置,最大幅度的提升系統(tǒng)性能。例如:可以通過追蹤一個資源定位的調(diào)用情況,明確底層的調(diào)用情況,發(fā)現(xiàn)哪些操作有阻塞的情況。

Skywalking

Skywalking是一款A(yù)PM(Application Performance Management & Monitoring)系統(tǒng)。Skywalking是分布式系統(tǒng)應(yīng)用程序性能監(jiān)視工具,專為微服務(wù)、云原生架構(gòu)和基于容器(Docker、K8s、Mesos)架構(gòu)而設(shè)計。提供分布式追蹤、服務(wù)網(wǎng)格遙測分析、度量聚合和可視化一體化解決方案。

功能介紹

多種監(jiān)控手段。可以通過語言探針和 service mesh 獲得監(jiān)控是數(shù)據(jù)。

多個語言自動探針。包括 Java,.NET Core 和 Node.JS

輕量高效。無需大數(shù)據(jù)平臺,和大量的服務(wù)器資源。

模塊化。UI、存儲、集群管理都有多種機制可選。

支持告警。

優(yōu)秀的可視化解決方案。

整體架構(gòu)

0d72143a-d32c-11ef-9310-92fbcf53809c.png

整個架構(gòu),分成上、下、左、右四部分:

探針基于不同的來源可能是不一樣的, 但作用都是收集數(shù)據(jù), 將數(shù)據(jù)格式化為 SkyWalking 適用的格式.

平臺后端是一個支持集群模式運行的后臺, 用于數(shù)據(jù)聚合, 數(shù)據(jù)分析以及驅(qū)動數(shù)據(jù)流從探針到用戶界面的流程. 平臺后端還提供了各種可插拔的能力, 如不同來源數(shù)據(jù)(如來自 Zipkin)格式化, 不同存儲系統(tǒng)以及集群管理. 你甚至還可以使用觀測分析語言來進行自定義聚合分析.

存儲是開放式的. 你可以選擇一個既有的存儲系統(tǒng), 如 ElasticSearch, H2 或 MySQL 集群(Sharding-Sphere 管理), 也可以選擇自己實現(xiàn)一個存儲系統(tǒng). 當然, 我們非常歡迎你貢獻新的存儲系統(tǒng)實現(xiàn).

用戶界面對于 SkyWalking 的最終用戶來說非常炫酷且強大. 同樣它也是可定制以匹配你已存在的后端的

Tracing、Logging和Metrics

在微服務(wù)領(lǐng)域,很早以來就形成了Tracing、Logging和Metrics相輔相成,合力支撐多維度、多形態(tài)的監(jiān)控體系,三類監(jiān)控各有側(cè)重:

Tracing:它在單次請求的范圍內(nèi),處理信息。 任何的數(shù)據(jù)、元數(shù)據(jù)信息都被綁定到系統(tǒng)中的單個事務(wù)上。例如:一次調(diào)用遠程服務(wù)的RPC執(zhí)行過程;一次實際的SQL查詢語句;一次HTTP請求的業(yè)務(wù)性ID;

Logging:日志,不知道大家有沒有想過它的定義或者邊界。Logging即是記錄處理的離散事件,比如我們應(yīng)用的調(diào)試信息或者錯誤信息等發(fā)送到ES;審計跟蹤時間信息通過Kafka處理送到BigTable等數(shù)據(jù)倉儲等等,大多數(shù)情況下記錄的數(shù)據(jù)很分散,并且相互獨立,也許是錯誤信息,也許僅僅只是記錄當前的事件狀態(tài),或者是警告信息等等。

Metrics:當我們想知道我們服務(wù)的請求QPS是多少,或者當天的用戶登錄次數(shù)等等,這時我們可能需要將一部分事件進行聚合或計數(shù),也就是我們說的Metrics。可聚合性即是Metrics的特征,它們是一段時間內(nèi)某個度量(計數(shù)器或者直方圖)的原子或者是元數(shù)據(jù)。例如接收的HTTP數(shù)量可以被建模為計數(shù)器,每次的HTTP請求即是我們的度量元數(shù)據(jù),可以進行簡單的加法聚合,當持續(xù)了一段時間我們又可以建模為直方圖。

0d829b02-d32c-11ef-9310-92fbcf53809c.png

.NET6 對接 Skywalking

部署Skywalking環(huán)境

version: '3.3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.0
    container_name: elasticsearch
    restart: always
    ports:
      - 9200:9200
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
  oap:
    image: apache/skywalking-oap-server:6.6.0-es7
    container_name: oap
    depends_on:
      - elasticsearch
    links:
      - elasticsearch
    restart: always
    ports:
      - 11800:11800
      - 12800:12800
    environment:
      SW_STORAGE: elasticsearch
      SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
  ui:
    image: apache/skywalking-ui:6.6.0
    container_name: ui
    depends_on:
      - oap
    links:
      - oap
    restart: always
    ports:
      - 8080:8080
    environment:
      SW_OAP_ADDRESS: http://oap:12800

安裝成功以后首頁地址:http://服務(wù)器IP:8080

對接.NET6 程序

添加依賴


    

編輯Skywalking配置文件skyapm.json

手動編寫skyapm.json

{
  "SkyWalking": {
    "ServiceName": "MySkyWalkingDemoTest",
    "Namespace": "",
    "HeaderVersions": [
      "sw8"
    ],
    "Sampling": {
      "SamplePer3Secs": -1,
      "Percentage": -1.0
    },
    "Logging": {
      "Level": "Information",
      "FilePath": "logs\skyapm-{Date}.log"
    },
    "Transport": {
      "Interval": 3000,
      "ProtocolVersion": "v8",
      "QueueSize": 30000,
      "BatchSize": 3000,
      "gRPC": {
        "Servers": "192.168.3.245:11800",
        "Timeout": 10000,
        "ConnectTimeout": 10000,
        "ReportTimeout": 600000,
        "Authentication": ""
      }
    }
  }
}

自動生成Skyapm.json

安裝CLI(SkyAPM.DotNet.CLI)

 dotnet tool install -g SkyAPM.DotNet.CLI

自動生成skyapm.json文件

server name指的就是您剛才配置的SKYWALKING__SERVICENAME,server指的是您Skywalking的ip地址。執(zhí)行命令后,會自動生成一個skywalking.json 。

 dotnet skyapm config [service name] [server]:11800
 #eg: dotnet skyapm config MySkyWalking_OrderService 192.168.3.245:11800

SkyAPM Config 配置說明

ServiceName
服務(wù)名稱

Sampling
采樣配置節(jié)點

SamplePer3Secs 每3秒采樣數(shù)

Percentage 采樣百分比,例如10%采樣則配置為10

Logging
日志配置節(jié)點

Level 日志級別

FilePath 日志保存路徑

Transport

傳輸配置節(jié)點

Interval 每多少毫秒刷新

gRPC
gRPC配置節(jié)點

Servers gRPC地址,多個用逗號“,”

Timeout 創(chuàng)建gRPC鏈接的超時時間,毫秒

ConnectTimeout gRPC最長鏈接時間,毫秒

在launchSettings.json文件配置SK

"profiles": { // 項目
    "IIS Express": { // IIS部署項
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "weatherforecast",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore",
        "SKYWALKING__SERVICENAME": "MySkyWalkingDemoTest"
      }
    },
    "SkyWalkingDemo": { // castrol部署項
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "weatherforecast",
      "applicationUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore", // 必須配置
        "SKYWALKING__SERVICENAME": "MySkyWalkingDemoTest" // 必須配置,在skywalking做標識
      }
    }
  }

在startup.cs文件中添加

public void ConfigureServices(IServiceCollection services)
{
    services.AddSkyApmExtensions(); // 添加Skywalking相關(guān)配置
    services.AddControllers();
    services.AddHttpClient();
}

獲取traceId

private readonly IEntrySegmentContextAccessor segContext;

public SkywalkingController(IEntrySegmentContextAccessor segContext)
{
    this.segContext = segContext;
}

/// 
/// 獲取鏈接追蹤ID
/// 
/// 
[HttpGet("traceId")]
public string GetSkywalkingTraceId()
{
    return segContext.Context.TraceId;
}

自定義調(diào)用鏈路的信息

[HttpGet]
public async Task SkywalkingTest()
{
    //獲取全局的skywalking的TracId
    var TraceId = _segContext.Context.TraceId;
    Console.WriteLine($"TraceId={TraceId}");
    _segContext.Context.Span.AddLog(LogEvent.Message($"SkywalkingTest---Worker running at: {DateTime.Now}"));

    System.Threading.Thread.Sleep(1000);

    _segContext.Context.Span.AddLog(LogEvent.Message($"SkywalkingTest---Worker running at--end: {DateTime.Now}"));

    return Ok($"Ok,SkywalkingTest-TraceId={TraceId} ");
}

接入微服務(wù)網(wǎng)關(guān)+后臺微服務(wù)

網(wǎng)關(guān)接入

添加依賴


    

拷貝配置文件并簡單修改

{
  "SkyWalking": {
    "ServiceName": "MySkyWalking_Gateway", #修改名稱就OK
    "Namespace": "",
    "HeaderVersions": [
      "sw8"
    ],
    "Sampling": {
      "SamplePer3Secs": -1,
      "Percentage": -1.0
    },
    "Logging": {
      "Level": "Debug",
      "FilePath": "logs\skyapm-{Date}.log"
    },
    "Transport": {
      "Interval": 3000,
      "ProtocolVersion": "v8",
      "QueueSize": 30000,
      "BatchSize": 3000,
      "gRPC": {
        "Servers": "192.168.3.245:11800",
        "Timeout": 10000,
        "ConnectTimeout": 10000,
        "ReportTimeout": 600000,
        "Authentication": ""
      }
    }
  }
}

在launchsettings.json添加環(huán)境變量

"profiles": {
    "Zhaoxi.MicroService.GatewayCenter": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "launchUrl": "swagger",
      "applicationUrl": "https://localhost:7141;http://localhost:5141",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore", #添加HOST變量
        "SKYWALKING__SERVICENAME": "MySkyWalking_Gateway" #添加服務(wù)名稱
      }
    },
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore",
        "SKYWALKING__SERVICENAME": "MySkyWalking_Gateway"
      }
    }
  }

修改網(wǎng)關(guān)配置文件,添加OrderServiceInstance微服務(wù)的路由

{
    "DownstreamPathTemplate": "/api/{url}", //服務(wù)地址--url變量
    "DownstreamScheme": "http",
    "UpstreamPathTemplate": "/microservice/{url}", //網(wǎng)關(guān)地址--url變量
    "UpstreamHttpMethod": [ "Get", "Post" ],
    "UseServiceDiscovery": true,
    "ServiceName": "OrderService", //consul服務(wù)名稱
    "LoadBalancerOptions": {
        "Type": "RoundRobin" //輪詢
}

啟動網(wǎng)關(guān)

dotnet run --urls=http://*:6299

訂單微服務(wù)接入

添加依賴


    

拷貝配置文件并簡單修改

{
  "SkyWalking": {
    "ServiceName": "MySkyWalking_OrderService",
    "Namespace": "",
    "HeaderVersions": [
      "sw8"
    ],
    "Sampling": {
      "SamplePer3Secs": -1,
      "Percentage": -1.0
    },
    "Logging": {
      "Level": "Debug",
      "FilePath": "logs\skyapm-{Date}.log"
    },
    "Transport": {
      "Interval": 3000,
      "ProtocolVersion": "v8",
      "QueueSize": 30000,
      "BatchSize": 3000,
      "gRPC": {
        "Servers": "192.168.3.245:11800",
        "Timeout": 10000,
        "ConnectTimeout": 10000,
        "ReportTimeout": 600000,
        "Authentication": ""
      }
    }
  }
}

在launchsettings.json添加環(huán)境變量

"profiles": {
    "Zhaoxi.MicroService.OrderServiceInstance": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "launchUrl": "swagger",
      "applicationUrl": "http://192.168.3.105:7900",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore",
        "SKYWALKING__SERVICENAME": "MySkyWalking_OrderService"
      }
    },
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }

啟動訂單微服務(wù)

dotnet run

用戶微服務(wù)接入

步驟和訂單微服務(wù)一樣

配置Skywalking告警

配置告警規(guī)則

docker exec -it 12f053748e85 /bin/sh
ls -l

0d985e88-d32c-11ef-9310-92fbcf53809c.png

查閱配置規(guī)則文件及配置規(guī)則解讀

通過cat alarm-settings.yml可以查閱文件內(nèi)容,如下:

docker cp 12f053748e85:/skywalking/config/alarm-settings.yml .
# Sample alarm rules.
rules:
  # Rule unique name, must be ended with `_rule`.
  service_resp_time_rule:
    metrics-name: service_resp_time
    op: ">"
    threshold: 1000
    period: 10
    count: 3
    silence-period: 5
    message: Response time of service {name} is more than 1000ms in 3 minutes of last 10 minutes.
  service_sla_rule:
    # Metrics value need to be long, double or int
    metrics-name: service_sla
    op: "<"
    threshold: 8000
    # The length of time to evaluate the metrics
    period: 10
    # How many times after the metrics match the condition, will trigger alarm
    count: 2
    # How many times of checks, the alarm keeps silence after alarm triggered, default as same as period.
    silence-period: 3
    message: Successful rate of service {name} is lower than 80% in 2 minutes of last 10 minutes
  service_resp_time_percentile_rule:
    # Metrics value need to be long, double or int
    metrics-name: service_percentile
    op: ">"
    threshold: 1000,1000,1000,1000,1000
    period: 10
    count: 3
    silence-period: 5
    message: Percentile response time of service {name} alarm in 3 minutes of last 10 minutes, due to more than one condition of p50 > 1000, p75 > 1000, p90 > 1000, p95 > 1000, p99 > 1000
  service_instance_resp_time_rule:
    metrics-name: service_instance_resp_time
    op: ">"
    threshold: 1000
    period: 10
    count: 2
    silence-period: 5
    message: Response time of service instance {name} is more than 1000ms in 2 minutes of last 10 minutes
  database_access_resp_time_rule:
    metrics-name: database_access_resp_time
    threshold: 1000
    op: ">"
    period: 10
    count: 2
    message: Response time of database access {name} is more than 1000ms in 2 minutes of last 10 minutes
  endpoint_relation_resp_time_rule:
    metrics-name: endpoint_relation_resp_time
    threshold: 1000
    op: ">"
    period: 10
    count: 2
    message: Response time of endpoint relation {name} is more than 1000ms in 2 minutes of last 10 minutes
#  Active endpoint related metrics alarm will cost more memory than service and service instance metrics alarm.
#  Because the number of endpoint is much more than service and instance.
#
#  endpoint_avg_rule:
#    metrics-name: endpoint_avg
#    op: ">"
#    threshold: 1000
#    period: 10
#    count: 2
#    silence-period: 5
#    message: Response time of endpoint {name} is more than 1000ms in 2 minutes of last 10 minutes

webhooks:
#  - http://127.0.0.1/notify/
#  - http://127.0.0.1/go-wechat/

規(guī)則常用指標解讀
rule name: 規(guī)則名稱,必須唯一,必須以_rule結(jié)尾;
metrics name: oal(Observability Analysis Language)腳本中的度量名;名稱在SkyWalking后端服務(wù)中已經(jīng)定義,進入容器skywalking-oap之后,進入如下目錄就可以找到。

include names: 本規(guī)則告警生效的實體名稱,如服務(wù)名,終端名;
exclude-names:將此規(guī)則作用于不匹配的實體名稱上,如服務(wù)名,終端名;
threshold: 閾值,可以是一個數(shù)組,即可以配置多個值;
op: 操作符, 可以設(shè)定 >, <, =;
period: 多久檢查一次當前的指標數(shù)據(jù)是否符合告警規(guī)則;以分鐘為單位
count: 超過閾值條件,達到count次數(shù),觸發(fā)告警;
silence period:在同一個周期,指定的silence period時間內(nèi),忽略相同的告警消息;
更多告警規(guī)則詳情,請參照這個地址:https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/backend-alarm.md

修改告警規(guī)則

rules:
service_test_sal_rule:
# 指定指標名稱
    metrics-name: service_test_sal
    # 小于
    op: "<"
    # 指定閾值
    threshold: 8000
    # 每2分鐘檢測告警該規(guī)則
    period: 2
    # 觸發(fā)1次規(guī)則就告警
    count: 1
    # 設(shè)置三分鐘內(nèi)容相同告警,不重復(fù)告警
    silence-period: 3
    # 配置告警信息
    message: Successful rate of service {name} is lower than 80% in 2 minutes of last 10 minutes

概要:服務(wù)成功率在過去2分鐘內(nèi)低于80%

告警API編寫

本質(zhì)還是SkyWalking根據(jù)規(guī)則進行檢查,如果符合規(guī)則條件,就通過WebHook、gRPCHook、WeChat Hook、Dingtalk Hook等方式進行消息通知;接收到告警數(shù)據(jù)信息之后,可以自行處理消息。這里為了方便,就采用WebHook的方式進行演示,即觸發(fā)告警條件之后,SkyWalking會調(diào)用配置的WebHook 接口,并傳遞對應(yīng)的告警信息;

定義數(shù)據(jù)模型

public class AlarmMsg
{
    public int scopeId { get; set; }
    public string? scope { get; set; }
    public string? name { get; set; }
    public string? id0 { get; set; }
    public string? id1 { get; set; }
    public string? ruleName { get; set; }
    public string? alarmMessage { get; set; }
}

定義WebHook調(diào)用API

/// 
/// 告警API
/// 
/// 
/// 
[HttpPost("AlarmMsg")]
public void AlarmMsg(List msgs)
{
    string msg = "觸發(fā)告警:";
    msg += msgs.FirstOrDefault()?.alarmMessage;
    Console.WriteLine(msg);
    SendMail(msg);
}

配置webHook

http://192.168.3.105:7900/api/Skywalking/AlarmMsg
# Sample alarm rules.
rules:
  # Rule unique name, must be ended with `_rule`.
  service_resp_time_rule:
    metrics-name: service_resp_time
    op: ">"
    threshold: 1000
    period: 10
    count: 3
    silence-period: 5
    message: Response time of service {name} is more than 1000ms in 3 minutes of last 10 minutes.
  service_sla_rule:
    # Metrics value need to be long, double or int
    metrics-name: service_sla
    op: "<"
    threshold: 8000
    # The length of time to evaluate the metrics
    period: 10
    # How many times after the metrics match the condition, will trigger alarm
    count: 2
    # How many times of checks, the alarm keeps silence after alarm triggered, default as same as period.
    silence-period: 3
    message: Successful rate of service {name} is lower than 80% in 2 minutes of last 10 minutes
  service_resp_time_percentile_rule:
    # Metrics value need to be long, double or int
    metrics-name: service_percentile
    op: ">"
    threshold: 1000,1000,1000,1000,1000
    period: 10
    count: 3
    silence-period: 5
    message: Percentile response time of service {name} alarm in 3 minutes of last 10 minutes, due to more than one condition of p50 > 1000, p75 > 1000, p90 > 1000, p95 > 1000, p99 > 1000
  service_instance_resp_time_rule:
    metrics-name: service_instance_resp_time
    op: ">"
    threshold: 1000
    period: 10
    count: 2
    silence-period: 5
    message: Response time of service instance {name} is more than 1000ms in 2 minutes of last 10 minutes
  database_access_resp_time_rule:
    metrics-name: database_access_resp_time
    threshold: 1000
    op: ">"
    period: 10
    count: 2
    message: Response time of database access {name} is more than 1000ms in 2 minutes of last 10 minutes
  endpoint_relation_resp_time_rule:
    metrics-name: endpoint_relation_resp_time
    threshold: 1000
    op: ">"
    period: 10
    count: 2
    message: Response time of endpoint relation {name} is more than 1000ms in 2 minutes of last 10 minutes
#  Active endpoint related metrics alarm will cost more memory than service and service instance metrics alarm.
#  Because the number of endpoint is much more than service and instance.
#
#  endpoint_avg_rule:
#    metrics-name: endpoint_avg
#    op: ">"
#    threshold: 1000
#    period: 10
#    count: 2
#    silence-period: 5
#    message: Response time of endpoint {name} is more than 1000ms in 2 minutes of last 10 minutes

webhooks:
  - http://192.168.3.105:7900/api/Skywalking/AlarmMsg
#  - http://127.0.0.1/go-wechat/
rules:
  # 告警規(guī)則名稱,必須唯一,以_rule結(jié)尾
  service_sla_rule:
     # 指定metrics-name
     metrics-name: service_sla
     # 小于
     op: "<" 
     # 指定閾值
     threshold: 8000                                                                           
     # 10分鐘檢測一次告警規(guī)則                                                 
     period: 10                                                                                 
     # 觸發(fā)2次告警規(guī)則就告警                   
     count: 2                                                                                   
     # 設(shè)置的3分鐘時間段有相同的告警,不重復(fù)告警.
     silence-period: 3 
      # 配置告警消息
     message: Successful rate of service {name} is lower than 80% in 2 minutes of last 10 minutes
webhooks:
- http://192.168.3.105:7900/api/Skywalking/AlarmMsg

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 網(wǎng)關(guān)
    +關(guān)注

    關(guān)注

    9

    文章

    6782

    瀏覽量

    56260
  • Trace
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    11023

原文標題:配置Skywalking告警

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Prometheus告警規(guī)則編寫與Alertmanager通知配置實戰(zhàn)

    監(jiān)控系統(tǒng)搭完了,指標也采集上來了,但如果沒有告警,等于白搭。我見過不少團隊Prometheus跑得好好的,Grafana大屏也掛在墻上,結(jié)果凌晨3點數(shù)據(jù)庫磁盤寫滿了,第二天早上用戶投訴才發(fā)現(xiàn)。監(jiān)控不閉環(huán),就是擺設(shè)。
    的頭像 發(fā)表于 02-26 16:35 ?234次閱讀

    如何控制告警聲音,或者實現(xiàn)長鳴告警

    如何控制告警聲音,或者實現(xiàn)長鳴告警
    發(fā)表于 01-20 17:10

    電能質(zhì)量在線監(jiān)測裝置的多級告警閾值功能是如何實現(xiàn)的?

    電能質(zhì)量在線監(jiān)測裝置的多級告警閾值功能通過 “硬件采集 - 軟件計算 - 閾值比對 - 智能觸發(fā) - 分級響應(yīng)” 的全鏈路閉環(huán)實現(xiàn),核心是為不同電能質(zhì)量指標設(shè)置差異化閾值與響應(yīng)策略,適配異常嚴重程度
    的頭像 發(fā)表于 12-10 14:32 ?498次閱讀
    電能質(zhì)量在線監(jiān)測裝置的多級<b class='flag-5'>告警</b>閾值功能是如何實現(xiàn)的?

    電能質(zhì)量在線監(jiān)測裝置可設(shè)置多級告警閾值嗎?

    電能質(zhì)量在線監(jiān)測裝置可以設(shè)置多級告警閾值 ,這是其核心功能之一,廣泛應(yīng)用于工業(yè)生產(chǎn)、電網(wǎng)運維等場景,以實現(xiàn)差異化的異常響應(yīng)與精準預(yù)警。 一、多級告警閾值的基本配置能力 全參數(shù)覆蓋 :可針對 所有電能
    的頭像 發(fā)表于 12-10 14:05 ?439次閱讀
    電能質(zhì)量在線監(jiān)測裝置可設(shè)置多級<b class='flag-5'>告警</b>閾值嗎?

    電能質(zhì)量在線監(jiān)測裝置故障會發(fā)微信告警嗎?

    電能質(zhì)量在線監(jiān)測裝置本身通常不直接發(fā)送微信告警,但通過配套的云平臺 / 運維系統(tǒng)并結(jié)合網(wǎng)絡(luò)通信,可實現(xiàn)微信告警功能 ,將故障信息實時推送給相關(guān)運維人員。 一、微信告警的實現(xiàn)方式 實現(xiàn)層級 具體說明
    的頭像 發(fā)表于 12-05 14:58 ?401次閱讀

    恒訊科技解析:服務(wù)器監(jiān)控與告警設(shè)置—企業(yè)必備指南

    一、為什么企業(yè)必須配置服務(wù)器監(jiān)控和告警 要是沒有監(jiān)控系統(tǒng),企業(yè),就只能在故障出現(xiàn)之后,才發(fā)覺問題,進而造成業(yè)務(wù)方面的損失。恒訊科技長期服務(wù)企業(yè)客戶發(fā)現(xiàn)超八成的服務(wù)器故障,借助監(jiān)控與告警機制可提前察覺
    的頭像 發(fā)表于 11-25 17:42 ?656次閱讀

    交換機CPU CoS隊列沖突告警問題

    某地反饋ZXR10 5960X交換機一直顯示如下告警,每10分鐘出現(xiàn)一次。
    的頭像 發(fā)表于 11-08 10:11 ?887次閱讀
    交換機CPU CoS隊列沖突<b class='flag-5'>告警</b>問題

    宏集分享 | 集中告警管理如何提升設(shè)施安全性?

    提高團隊響應(yīng)速度,優(yōu)化維護運營在工業(yè)或商業(yè)建筑中,集中告警管理已成為確保安全性或檢測故障的必備工具。通過將所有安全系統(tǒng)集中管理,企業(yè)能夠?qū)⑺?b class='flag-5'>告警統(tǒng)一在一個HMI界面中,大幅提升響應(yīng)速度。關(guān)鍵要點
    的頭像 發(fā)表于 08-08 18:25 ?522次閱讀
    宏集分享 | 集中<b class='flag-5'>告警</b>管理如何提升設(shè)施安全性?

    工業(yè)設(shè)備告警管理平臺具備有什么功能

    工業(yè)設(shè)備告警管理平臺通過整合設(shè)備數(shù)據(jù)、優(yōu)化告警邏輯、強化協(xié)同響應(yīng),構(gòu)建了覆蓋“監(jiān)測-分析-處置-優(yōu)化”全流程的智能化管理體系,其核心功能可歸納為以下五大模塊: 一、多源數(shù)據(jù)集成與實時監(jiān)測 設(shè)備接入
    的頭像 發(fā)表于 08-08 14:48 ?587次閱讀

    EM儲能網(wǎng)關(guān) ZWS智慧儲能云應(yīng)用(18) — 電站告警

    導(dǎo)致設(shè)備損壞或停機事故,造成行業(yè)經(jīng)濟損失,在此背景下,ZWS智慧儲能云平臺的電站告警功能應(yīng)運而生。作為云平臺的核心模塊,電站告警功能最初以高自由度配置為設(shè)計理念,
    的頭像 發(fā)表于 07-25 11:35 ?455次閱讀
    EM儲能網(wǎng)關(guān) ZWS智慧儲能云應(yīng)用(18) — 電站<b class='flag-5'>告警</b>

    M6000-S License授權(quán)失效告警問題

    某網(wǎng)絡(luò)中入網(wǎng)一臺ZXR10 M6000-18S設(shè)備,運行一段時間后發(fā)現(xiàn)如下告警,提示License授權(quán)即將過期。
    的頭像 發(fā)表于 07-25 09:41 ?580次閱讀
    M6000-S License授權(quán)失效<b class='flag-5'>告警</b>問題

    大彩講堂:VisualTFT軟件modbus協(xié)議下的告警應(yīng)用

    VisualTFT軟件modbus協(xié)議下的告警應(yīng)用
    的頭像 發(fā)表于 07-01 17:40 ?1208次閱讀
    大彩講堂:VisualTFT軟件modbus協(xié)議下的<b class='flag-5'>告警</b>應(yīng)用

    車間通風(fēng)系統(tǒng)監(jiān)控告警物聯(lián)網(wǎng)解決方案

    風(fēng)扇運行則現(xiàn)場告警燈會間隔閃爍;而如果全部風(fēng)扇停止工作就會啟動聲光告警,需要立即停工檢修。 由于環(huán)境較惡劣,加上運行時間長,風(fēng)扇故障率越來越高,采用人工巡檢的模式逐漸暴露出效率低、風(fēng)險大等弊端,同時停機檢修所付出的成本
    的頭像 發(fā)表于 06-24 11:23 ?634次閱讀
    車間通風(fēng)系統(tǒng)監(jiān)控<b class='flag-5'>告警</b>物聯(lián)網(wǎng)解決方案

    智能電纜通斷采集機,實時監(jiān)測精準告警

    產(chǎn)品作用 電纜通斷采集主機是一款高度智能化的監(jiān)控設(shè)備,主要用于實時監(jiān)測電纜的通斷狀態(tài),并在異常情況下及時觸發(fā)告警。該設(shè)備支持多種移動信號,確保數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性。適用于電力、通信、交通、安防等
    的頭像 發(fā)表于 06-21 09:54 ?632次閱讀
    智能電纜通斷采集機,實時監(jiān)測精準<b class='flag-5'>告警</b>

    TECS OpenStack資源池虛機寫磁盤時延高告警的問題處理

    某運營商TECS資源池,在當前告警中顯示“虛機寫磁盤時延高告警”,如下圖所示。告警統(tǒng)計總體平均10分鐘左右自動恢復(fù)。
    的頭像 發(fā)表于 03-21 09:36 ?1017次閱讀
    TECS OpenStack資源池虛機寫磁盤時延高<b class='flag-5'>告警</b>的問題處理