首页 > 系统相关 >SkyWalking服务监控简单配置【Windows版本】

SkyWalking服务监控简单配置【Windows版本】

时间:2024-01-19 09:56:10浏览次数:23  
标签:name service Windows resp SW 版本 SkyWalking skywalking 1000

SkyWalking是什么

skywalking是一个可观测性分析平台和应用性能管理系统专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。

下载

官网:https://skywalking.apache.org/
下载地址:https://skywalking.apache.org/downloads/

中文文档:https://skyapm.github.io/document-cn-translation-of-skywalking/

配置开始

本人使用版本9.1.0,目录如下,下载的agent放到目录下即可

配置nacos

进入目录config,编辑application.yml文件

修改如下配置
cluster:
  selector: ${SW_CLUSTER:nacos}
  .
  .
  .
  nacos:
    serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
    hostPort: ${SW_CLUSTER_NACOS_HOST_PORT:192.168.3.145:8848}
    # Nacos Configuration namespace
    namespace: ${SW_CLUSTER_NACOS_NAMESPACE:"develop-hhs"}
    # Nacos auth username
    username: ${SW_CLUSTER_NACOS_USERNAME:"nacos"}
    password: ${SW_CLUSTER_NACOS_PASSWORD:"nacos"}
    # Nacos auth accessKey
    accessKey: ${SW_CLUSTER_NACOS_ACCESSKEY:""}
    secretKey: ${SW_CLUSTER_NACOS_SECRETKEY:""}
    internalComHost: ${SW_CLUSTER_INTERNAL_COM_HOST:""}
    internalComPort: ${SW_CLUSTER_INTERNAL_COM_PORT:-1}

服务配置,打开idea,修改启动配置


agent配置路径添加,修改每个服务的服务名,最后一个可不变

-javaagent:D:\chromeDownload\skywalking\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=skywalking-alarm-service
-Dskywalking.collector.backend_service=127.0.0.1:11800

即可看到对应的服务已被监控到

配置数据库【采用mysql】

还是修改config下application.yml
storage:
  selector: ${SW_STORAGE:mysql}
  .
  .
  .
  mysql:
   properties:
    jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/skywalking?rewriteBatchedStatements=true"}
    dataSource.user: ${SW_DATA_SOURCE_USER:root}
    dataSource.password: ${SW_DATA_SOURCE_PASSWORD:123456}
    dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}
    dataSource.prepStmtCacheSize: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}
    dataSource.prepStmtCacheSqlLimit: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}
    dataSource.useServerPrepStmts: ${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}
  metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}
  maxSizeOfBatchSql: ${SW_STORAGE_MAX_SIZE_OF_BATCH_SQL:2000}
  asyncBatchPersistentPoolSize: ${SW_STORAGE_ASYNC_BATCH_PERSISTENT_POOL_SIZE:4}

重新启动看到如下内容【自动创建了表】

自定义链路追踪

<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-trace</artifactId>
    <!-- 版本号和skywalking服务版本号保持一致 -->
    <version>9.1.0</version>
</dependency>

在service业务方法层添加注解
@Trace // skywalking自定义链路追踪注解
@Tags({
@Tag(key = "result", value = "returnedObj"), // skywalking自定义链路追踪记录返回值,returnedObj值是固定的
@Tag(key = "id", value = "arg[0]") // skywalking自定义链路追踪记录入参,arg[X]对应入参下标
})
即可以看到对应的日志内容,方便我们排查问题

日志配置及日志上报

<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-logback-1.x</artifactId>
    <version>9.1.0</version>
</dependency>

resource下添加logback-spring.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 引入Spring boot 默认的 logback XML 配置-->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!--日志格式化-->
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
                <!-- 添加SkyWalking 的tid方便查询 主要是这个[%X{tid}] -->
                <pattern>[%X{tid}] ${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS} }){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx} }</pattern>
            </layout>
        </encoder>
    </appender>

    <!--设置Appender-->
    <root level="INFO">
        <!-- 控制台日志 -->
        <appender-ref ref="console"/>
    </root>
</configuration>

配置完成后重启服务即可在控制台看到对应的TID,进入页面查询

告警功能

config/alarm-settings.yml文件
里面预先定义了一些常用的告警规则,我们可以在里面进行一些规则的修改

rules:
  # Rule unique name, must be ended with `_rule`.
  service_resp_time_rule:
    metrics-name: service_resp_time
    op: ">"
    threshold: 1000
    period: 1
    count: 2
    silence-period: 5
    message: 服务 {name} 的响应时间在过去的1分钟内超过1000毫秒的次数达到2次。
  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: 服务 {name} 的成功率在过去的10分钟内低于80%的次数达到2次。
  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: 服务 {name} 的百分位数响应时间在过去的10分钟内超过1000毫秒的次数达到3次,其中包括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: 服务实例 {name} 的响应时间在过去的10分钟内超过1000毫秒的次数达到2次。
  database_access_resp_time_rule:
    metrics-name: database_access_resp_time
    threshold: 1000
    op: ">"
    period: 10
    count: 2
    message: 数据库访问 {name} 的响应时间在过去的10分钟内超过1000毫秒的次数达到2次。
  endpoint_relation_resp_time_rule:
    metrics-name: endpoint_relation_resp_time
    threshold: 1000
    op: ">"
    period: 10
    count: 2
    message: 端点关系 {name} 的响应时间在过去的10分钟内超过1000毫秒的次数达到2次。

Webhook(网络钩子)
概述:可以简单理解为是一种Web层面的回调机制
SkyWalking的告警消息会通过 HTTP 请求进行发送,请求方法为 POST,Content-Type 为 application/json,其JSON 数据实基于List<org.apache.skywalking.oap.server.core.alarm.AlarmMessage>进行序列化的

[{
    "scopeId": 1,
    "scope": "SERVICE",
    "name": "serviceA",
    "id0": 12,
    "id1": 0,
    "ruleName": "service_resp_time_rule",
    "alarmMessage": "alarmMessage xxxx",
    "startTime": 1560524171000
}, {
    "scopeId": 1,
    "scope": "SERVICE",
    "name": "serviceB",
    "id0": 23,
    "id1": 0,
    "ruleName": "service_resp_time_rule",
    "alarmMessage": "alarmMessage yyy",
    "startTime": 1560524171000
}]
字段说明:
scopeId、scope:所有可用的 Scope 详见 org.apache.skywalking.oap.server.core.source.DefaultScopeDefine
name:目标 Scope 的实体名称
id0:Scope 实体的 ID
id1:保留字段,目前暂未使用
ruleName:告警规则名称
alarmMessage:告警消息内容
startTime:告警时间,格式为时间戳

编辑config/alarm-settings.yml文件

webhooks:
  - http://192.168.3.21:8000/monitor/alarm/receive

根据规则,触发告警,接收到之后编写自己的业务逻辑,比如进行邮件提醒之类...

标签:name,service,Windows,resp,SW,版本,SkyWalking,skywalking,1000
From: https://www.cnblogs.com/hhs-5120/p/17973977

相关文章

  • Windows常用快捷键
    Windows常用快捷键Ctrl+A:全选Ctrl+C:复制Ctrl+V:粘贴Ctrl+X:剪切Ctrl+Z:撤销Ctrl+S:保存alt+F4:关闭浏览器当前页面或关闭当前窗口shift+delete:完全删除win+R:运行win+E:打开我的电脑Ctrl+shfit+Esc:打开任务管理器......
  • UEFI引导双系统安装archlinux后安装windows8.1,os-prober无法探测,生成grub.cfg没有wind
    1.os-prober无法探测可能是os-prober未启用启用os-prober:sudovim/etc/default/grub添加:GRUB_DISABLE_OS_PROBER=false之后:sudogrub-mkconfig-o/boot/grub/grub.cfg会显示类似这样:Warning:os-proberwillbeexecutedtodetect otherbootablepartitions.It......
  • kaggle上的jax框架的环境配置(TPU版本)
    导出时间:2024-01-1821:00:37星期四python版本:Python3.10.13absl-py==1.4.0accelerate==0.25.0aiofiles==22.1.0aiosqlite==0.19.0anyio==4.2.0argon2-cffi==23.1.0argon2-cffi-bindings==21.2.0array-record==0.5.0arrow==1.3.0astroid==3.0.2asttokens==2.4......
  • Ubuntu和windows连接串口设备方法
    Ubuntu和windows连接串口设备方法一、Ubuntu连接串口1.下载并安装minicom工具sudoapt-getinstallminicom2.串口板连接主机和电脑后执行命令进入串口界面sudominicom-b115200二、windows连接串口1.下载并安装putty工具https://www.putty.org2.打开PUTTY工具,进入对应界面,如......
  • windows@管理员用户账户
    文章目录windows中的管理员用户账户将某个用户提升为管理员......
  • Microsoft edge@常见问题@由组织管理@策略组@版本问题
    文章目录本地edge浏览器由组织管理@功能受限检查例:侧边栏功能被禁用解出限制(删除相关注册表条目)解除限制检查refs页面加载问题thispagehavingaproblem禁止edge更新refs版本回滚本地edge浏览器由组织管理@功能受限检查浏览器输入edge://management/检查通过修改注册表(删除......
  • centos7.9(大部分都可以)和redhat6.9 离线升级OpenSSH和openssl (2023年的版本)
     ssl 红色。测试centos7.6也可以升级注意事项!1、多开几个连接窗口(xshell),避免升级openssh失败无法再次连接终端,否则要跑机房了。2、可开启telnet服务、vnc服务、打快照。多几个“保命”的路数。一、centos7.9的信息[root@node2~]#opensslversionOpenSSL1.0.2k-fips......
  • 【更新公告】Airtest更新至1.3.3版本
    此文章来源于项目官方公众号:“AirtestProject”版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途1.前言本次更新为Airtest、Poco库更新,Airtest版本提升至1.3.3版本,Poco版本提升至1.0.94版本,主要是Airtest新增点击和滑动的相对坐标支持,Poco修复了1.0.93运行......
  • Maven使用${revision}实现多模块版本统一管理
    父pom: <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://mave......
  • uniapp开发——h5版本页面切换无法重置页面滚动状态的处理方案
    前言:使用vue开发h5的时候,都会使用vue-router的scrollBehavior函数处理页面滚动状态,代码如下:constrouter=newVueRouter({mode:"hash",routes,scrollBehavior(to,from,savePosition){if(savePosition&&to.meta.keepAlive){returnsavePosition;......