chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

配置Skywalking告警

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

掃碼添加小助手

加入工程師交流群

目錄

OpenTracing規(guī)范

為什么需要OpenTracing

什么是一個(gè)Trace

一個(gè)典型的Trace案例

Skywalking

功能介紹

整體架構(gòu)

Tracing、Logging和Metrics

.NET6 對(duì)接 Skywalking

添加依賴

編輯Skywalking配置文件skyapm.json

在launchSettings.json文件配置SK

在startup.cs文件中添加

安裝CLI(SkyAPM.DotNet.CLI)

自動(dòng)生成skyapm.json文件

手動(dòng)編寫skyapm.json

自動(dòng)生成Skyapm.json

獲取traceId

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

部署Skywalking環(huán)境

對(duì)接.NET6 程序

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

添加依賴

拷貝配置文件并簡單修改

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

啟動(dòng)訂單微服務(wù)

添加依賴

拷貝配置文件并簡單修改

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

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

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

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

訂單微服務(wù)接入

用戶微服務(wù)接入

配置Skywalking告警

配置告警規(guī)則

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

修改告警規(guī)則

告警API編寫

OpenTracing規(guī)范

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

為什么需要OpenTracing

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

什么是一個(gè)Trace

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

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

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

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

一個(gè)父級(jí)的span會(huì)顯示的并行或者串行啟動(dòng)多個(gè)子span。在OpenTracing標(biāo)準(zhǔn)中,甚至允許一個(gè)子span有個(gè)多父span(例如:并行寫入的緩存,可能通過一次刷新操作寫入動(dòng)作)。

一個(gè)典型的Trace案例

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

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

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

這種展現(xiàn)方式增加顯示了執(zhí)行時(shí)間的上下文,相關(guān)服務(wù)間的層次關(guān)系,進(jìn)程或者任務(wù)的串行或并行調(diào)用關(guān)系。這樣的視圖有助于發(fā)現(xiàn)系統(tǒng)調(diào)用的關(guān)鍵路徑。通過關(guān)注關(guān)鍵路徑的執(zhí)行過程,項(xiàng)目團(tuán)隊(duì)可能專注于優(yōu)化路徑中的關(guān)鍵位置,最大幅度的提升系統(tǒng)性能。例如:可以通過追蹤一個(gè)資源定位的調(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è)計(jì)。提供分布式追蹤、服務(wù)網(wǎng)格遙測分析、度量聚合和可視化一體化解決方案。

功能介紹

多種監(jiān)控手段??梢酝ㄟ^語言探針和 service mesh 獲得監(jiān)控是數(shù)據(jù)。

多個(gè)語言自動(dòng)探針。包括 Java,.NET Core 和 Node.JS。

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

模塊化。UI、存儲(chǔ)、集群管理都有多種機(jī)制可選。

支持告警。

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

整體架構(gòu)

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

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

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

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

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

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

Tracing、Logging和Metrics

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

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

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

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

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

.NET6 對(duì)接 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

對(duì)接.NET6 程序

添加依賴


    

編輯Skywalking配置文件skyapm.json

手動(dòng)編寫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": ""
      }
    }
  }
}

自動(dòng)生成Skyapm.json

安裝CLI(SkyAPM.DotNet.CLI)

 dotnet tool install -g SkyAPM.DotNet.CLI

自動(dòng)生成skyapm.json文件

server name指的就是您剛才配置的SKYWALKING__SERVICENAME,server指的是您Skywalking的ip地址。執(zhí)行命令后,會(huì)自動(dòng)生成一個(gè)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é)點(diǎn)

SamplePer3Secs 每3秒采樣數(shù)

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

Logging
日志配置節(jié)點(diǎn)

Level 日志級(jí)別

FilePath 日志保存路徑

Transport

傳輸配置節(jié)點(diǎn)

Interval 每多少毫秒刷新

gRPC
gRPC配置節(jié)點(diǎn)

Servers gRPC地址,多個(gè)用逗號(hào)“,”

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

ConnectTimeout gRPC最長鏈接時(shí)間,毫秒

在launchSettings.json文件配置SK

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

在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)+后臺(tái)微服務(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" //輪詢
}

啟動(dòng)網(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"
      }
    }
  }

啟動(dòng)訂單微服務(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ī)則常用指標(biāo)解讀
rule name: 規(guī)則名稱,必須唯一,必須以_rule結(jié)尾;
metrics name: oal(Observability Analysis Language)腳本中的度量名;名稱在SkyWalking后端服務(wù)中已經(jīng)定義,進(jìn)入容器skywalking-oap之后,進(jìn)入如下目錄就可以找到。

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

修改告警規(guī)則

rules:
service_test_sal_rule:
# 指定指標(biāo)名稱
    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ī)則進(jìn)行檢查,如果符合規(guī)則條件,就通過WebHook、gRPCHook、WeChat Hook、Dingtalk Hook等方式進(jìn)行消息通知;接收到告警數(shù)據(jù)信息之后,可以自行處理消息。這里為了方便,就采用WebHook的方式進(jìn)行演示,即觸發(fā)告警條件之后,SkyWalking會(huì)調(diào)用配置的WebHook 接口,并傳遞對(duì)應(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分鐘時(shí)間段有相同的告警,不重復(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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 網(wǎng)關(guān)
    +關(guān)注

    關(guān)注

    9

    文章

    5681

    瀏覽量

    53006
  • Trace
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    10773

原文標(biāo)題:配置Skywalking告警

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

    智能電纜通斷采集機(jī),實(shí)時(shí)監(jiān)測精準(zhǔn)告警

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

    TECS OpenStack資源池虛機(jī)寫磁盤時(shí)延高告警的問題處理

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

    排查并處理共享站點(diǎn)S1用戶面路徑不可用告警

    增多,如圖1所示。 圖 1? 電信4G基站告警 1. 通過對(duì)基站告警進(jìn)行分析后發(fā)現(xiàn),出現(xiàn)告警的S1用戶面路徑不可用告警,對(duì)端IP地址為10.100.33.X,如圖2所示。 圖2 對(duì)端I
    的頭像 發(fā)表于 01-23 11:08 ?881次閱讀
    排查并處理共享站點(diǎn)S1用戶面路徑不可用<b class='flag-5'>告警</b>

    DAC34H84配置發(fā)206M的單音,一直發(fā)不出來可能是哪個(gè)地方的原因?

    你好,DAC現(xiàn)在的配置是這樣的: 1、采樣時(shí)鐘768M,隨路時(shí)鐘48M,16倍內(nèi)部插值; 2、讀取告警寄存器也沒有FIFO沖突告警告警寄存器為0x0600; 3、電壓都沒有問題,輸
    發(fā)表于 12-30 06:14

    工業(yè)智能網(wǎng)關(guān)可以采集什么設(shè)備數(shù)據(jù)并實(shí)現(xiàn)自動(dòng)告警

    對(duì)接到云平臺(tái)或上位機(jī)中,確保數(shù)據(jù)通信的安全可靠,為設(shè)備遠(yuǎn)程監(jiān)控、故障告警、遠(yuǎn)程控制、遠(yuǎn)程維護(hù)與數(shù)據(jù)分析等應(yīng)用提供可靠幫助。 通過配置設(shè)備告警規(guī)則,設(shè)定不同告警方式,網(wǎng)關(guān)能夠在采集到這部
    的頭像 發(fā)表于 12-24 13:50 ?565次閱讀
    工業(yè)智能網(wǎng)關(guān)可以采集什么設(shè)備數(shù)據(jù)并實(shí)現(xiàn)自動(dòng)<b class='flag-5'>告警</b>

    如何借助邊緣智能網(wǎng)關(guān)實(shí)現(xiàn)廠區(qū)粉塵智能監(jiān)測告警

    針對(duì)工業(yè)場景中的粉塵狀況監(jiān)測、管理及預(yù)警,佰馬提供基于邊緣智能網(wǎng)關(guān)的粉塵監(jiān)測告警方案,幫助企業(yè)高效實(shí)現(xiàn)現(xiàn)場安全管理、風(fēng)險(xiǎn)防控、隱患排查、監(jiān)測預(yù)警、環(huán)境保護(hù)等功能整合。
    的頭像 發(fā)表于 12-23 18:04 ?396次閱讀
    如何借助邊緣智能網(wǎng)關(guān)實(shí)現(xiàn)廠區(qū)粉塵智能監(jiān)測<b class='flag-5'>告警</b>

    dac3171 config5的alarm_dataclk_ gone有告警是什么原因?

    使用的是DAC 31717bit模式。FPGA有數(shù)據(jù)輸出,也有隨路時(shí)鐘216M。但3171的config5 的alarm_dataclk_ gone有告警。用示波器測試有時(shí)鐘216M輸入到DAC里面,DAC無輸出,請(qǐng)問還需要配置其它寄存器不?或者有肯是什么問題,多謝!!
    發(fā)表于 12-20 07:02

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

    在工業(yè)或商業(yè)建筑中,集中告警管理已成為確保安全性或檢測故障的必備工具。它是如何提升設(shè)施安全性的?歡迎大家閱讀文章了解~
    的頭像 發(fā)表于 12-13 15:51 ?429次閱讀
    集中<b class='flag-5'>告警</b>管理如何提升設(shè)施安全性?

    卸料風(fēng)機(jī)壓力檢測自動(dòng)告警如何實(shí)現(xiàn)?有什么功能

    系統(tǒng)的正常運(yùn)行。 對(duì)此,為加強(qiáng)對(duì)風(fēng)機(jī)的監(jiān)控管理能力,卸料風(fēng)機(jī)壓力檢測自動(dòng)告警系統(tǒng)方案。通過接入風(fēng)機(jī)控制器PLC以及輸送管道壓力計(jì),能夠?qū)崟r(shí)采集風(fēng)機(jī)狀態(tài)與管道壓力并實(shí)現(xiàn)自動(dòng)告警,及時(shí)上傳到企業(yè)管理平臺(tái)中,幫助企業(yè)快
    的頭像 發(fā)表于 11-29 15:36 ?441次閱讀

    通過工業(yè)智能網(wǎng)關(guān)實(shí)現(xiàn)中間變量表達(dá)式的快速配置

    ,出現(xiàn)告警可能是多個(gè)變量達(dá)到條件而觸發(fā)的,就需要對(duì)中間變量進(jìn)行配置。 對(duì)此,物通博聯(lián)提供基于工業(yè)智能網(wǎng)關(guān)實(shí)現(xiàn)中間變量表達(dá)式的快速配置操作。用戶可以根據(jù)生產(chǎn)現(xiàn)場的應(yīng)用需求,靈活配置中間變
    的頭像 發(fā)表于 10-08 17:10 ?642次閱讀
    通過工業(yè)智能網(wǎng)關(guān)實(shí)現(xiàn)中間變量表達(dá)式的快速<b class='flag-5'>配置</b>

    工業(yè)智能網(wǎng)關(guān)如何配置報(bào)警規(guī)則

    的事故傷亡與停工損失,都是企業(yè)十分關(guān)注的問題。 對(duì)此,物通博聯(lián)提供基于工業(yè)智能網(wǎng)關(guān)的設(shè)備監(jiān)控告警系統(tǒng)解決方案。通過接入PLC、儀器儀表、數(shù)控機(jī)床、工業(yè)機(jī)器人、傳感器等設(shè)備數(shù)據(jù),配置好數(shù)據(jù)采集和報(bào)警規(guī)則,能夠在監(jiān)測到
    的頭像 發(fā)表于 09-20 17:09 ?682次閱讀
    工業(yè)智能網(wǎng)關(guān)如何<b class='flag-5'>配置</b>報(bào)警規(guī)則

    城市路燈水浸監(jiān)測自動(dòng)告警系統(tǒng)方案

    天氣條件下,路燈設(shè)施極易遭受內(nèi)澇積水影響,導(dǎo)致短路、損壞甚至引發(fā)觸電事故,嚴(yán)重威脅公共安全。為此,設(shè)計(jì)并實(shí)施一套高效的城市路燈水浸監(jiān)測自動(dòng)告警系統(tǒng)顯得尤為重要。 對(duì)此,數(shù)之能提供城市路燈水浸監(jiān)測自動(dòng)告警的物聯(lián)
    的頭像 發(fā)表于 08-28 17:10 ?538次閱讀
    城市路燈水浸監(jiān)測自動(dòng)<b class='flag-5'>告警</b>系統(tǒng)方案

    IR615配置流量告警方法

    ;gt;告警 新建規(guī)則 配置告警規(guī)則如下: 測試:電腦連接路由器lan口,訪問百度等頁面,使流量超出閥值. 在路由器web界面,狀態(tài)&gt;告警信息中可
    發(fā)表于 07-25 07:59

    EM儲(chǔ)能網(wǎng)關(guān) ZWS智慧儲(chǔ)能云應(yīng)用(4) — 告警介紹(下)

    ZWS智慧儲(chǔ)能云平臺(tái),作為一個(gè)開放式第三方平臺(tái),是如何自定義創(chuàng)建告警規(guī)則的?本文將介紹儲(chǔ)能系統(tǒng)如何創(chuàng)建告警規(guī)則、后續(xù)如何維護(hù)。儲(chǔ)能系統(tǒng)的告警功能至關(guān)重要,它能夠確保系統(tǒng)的穩(wěn)定與安全。云端告警
    的頭像 發(fā)表于 07-19 08:25 ?662次閱讀
    EM儲(chǔ)能網(wǎng)關(guān) ZWS智慧儲(chǔ)能云應(yīng)用(4) — <b class='flag-5'>告警</b>介紹(下)