Skywalking
后端:https://skywalking.apache.org/docs/main/latest/en/setup/backend/backend-setup/
各个插件使用示例:https://blog.csdn.net/weixin_42073629/article/details/106775584
# Agent
-Dskywalking.agent.service_name=skywalking_mysql
-javaagent:/path/to/skywalking-agent.jar=[option1]=[value1],[option2]=[value2]
-javaagent:/path/to/skywalking-agent.jar=agent.service_name=skywalking_mysql
-javaagent:/path/to/skywalking-agent.jar=agent.ignore_suffix='.jpg,.jpeg'
java -javaagent:/usr/local/skywalking/apache-skywalking-apm-
bin/agent_mysql/skywalking-agent.jar -
Dskywalking.agent.service_name=skywalking_mysql -jar skywalking_mysql.jar &
java -javaagent:/Users/gjason/Downloads/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -Dskywalking.agent.service_name=gateway -Dskywalking.collector.backend_service=127.0.0.1:11800 -jar zeekr-gateway.jar
2
3
4
5
6
7
8
9
10
11
放在plugin目录下面的时候,插件就默认就是启用了,如果可选的插件要使用,可以复制到plugin目录下面。
# 追踪子线程的信息
https://segmentfault.com/a/1190000023121812
# OAP
Configuration:https://skywalking.apache.org/docs/main/latest/en/setup/backend/configuration-vocabulary/
docker run --name oap --restart always -p 11800:11800 -p 12800:12800 -v /Users/gjason/docker/skywalking/config:/skywalking/config -d apache/skywalking-oap-server:8.8.0
# UI
安装:https://skywalking.apache.org/docs/main/latest/en/setup/backend/ui-setup/
使用:https://skywalking.apache.org/docs/main/latest/en/ui/readme/
docker run --name oap-ui --restart always -p 8080:8080 -d -e SW_OAP_ADDRESS=http://oap:12800 apache/skywalking-ui:8.8.0
# Nginx 接入
https://juejin.cn/post/6882669962398433293
# 接入Nacos
https://www.cnblogs.com/ssgeek/p/14586397.html
# 监控报警
https://juejin.cn/post/6844903954770313224
单独规则主要有以下几点:
- 规则名称:在告警信息中显示的唯一名称,必须以
_rule
结尾。 - metrics-name:度量名称,也是OAL脚本中的度量名。默认配置中可以用于告警的度量有:服务,实例,端点,服务关系,实例关系,端点关系。它只支持long,double和int类型。
- include-names:包含在此规则之内的实体名称列表。
- exclude-names:排除在此规则以外的实体名称列表。
- include-names-regex:提供一个正则表达式来包含实体名称。如果同时设置包含名称列表和包含名称的正则表达式,则两个规则都将生效。
- exclude-names-regex:提供一个正则表达式来排除实体名称。如果同时设置排除名称列表和排除名称的正则表达式,则两个规则都将生效。
- include-labels:包含在此规则之内的标签。
- exclude-labels:排除在此规则以外的标签。
- include-labels-regex:提供一个正则表达式来包含标签。如果同时设置包含标签列表和包含标签的正则表达式,则两个规则都将生效。
- exclude-labels-regex:提供一个正则表达式来排除标签。如果同时设置排除标签列表和排除标签的正则表达式,则两个规则都将生效。
标签的设置必须把数据存储在meter-system中,例如:Prometheus, Micrometer。以上四个标签设置必须实现LabeledValueHolder
接口。
threshold:阈值。对于多个值指标,例如percentile,阈值是一个数组。像
value1
value2
value3
value4
value5
这样描述。 每个值可以作为度量中每个值的阈值。如果不想通过此值或某些值触发警报,则将值设置为-
。 例如在percentile中,value1
是P50的阈值,value2
是P75的阈值,那么-,-,value3, value4, value5
的意思是,没有阈值的P50和P75的percentile告警规则。op:操作符,支持
>
,>=
,<
,<=
,=
。period:多久告警规则需要被检查一下。这是一个时间窗口,与后端部署环境时间相匹配。
count:在一个周期窗口中,如果按op计算超过阈值的次数达到count,则发送告警。
only-as-condition:
true
或者false
,指定规则是否可以发送告警,或者仅作为复合规则的条件。silence-period:在时间N中触发报警后,在N -> N + silence-period这段时间内不告警。 默认情况下,它和period一样,这意味着相同的告警(同一个度量名称拥有相同的Id)在同一个周期内只会触发一次。
message:该规则触发时,发送的通知消息。
threshold 值与 metrics-name 相对应的,如果监控的是接口响应时间,threshold 就是响应时长(MS)。
rules:
service_resp_time_rule:
metrics-name: service_resp_time
op: ">"
threshold: 1000
period: 10
count: 2
silence-period: 10
message: 服务【{name}】的平均响应时间在最近10分钟内有2次超过1秒
service_instance_resp_time_rule:
metrics-name: service_instance_resp_time
op: ">"
threshold: 1000
period: 10
count: 2
silence-period: 10
message: 实例【{name}】的平均响应时间在最近10分钟内有2次超过1秒
endpoint_resp_time_rule:
metrics-name: endpoint_avg
threshold: 1000
op: ">"
period: 10
count: 2
message: 端点【{name}】的平均响应时间在最近10分钟内有2分钟超过1秒
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
拓展 Metric 内容:https://segmentfault.com/a/1190000040419940
https://skyapm.github.io/document-cn-translation-of-skywalking/zh/6.3.0/concepts-and-designs/oal.html
# 监控数据清除
# TTL
In SkyWalking, there are two types of observability data:
- Records include traces, logs, topN sampled statements and alarm.
recordDataTTL
applies to record data. - Metrics include all metrics for service, instance, endpoint, and topology map. Metadata(lists of services, instances, or endpoints) also belongs to metrics.
metricsDataTTL
applies to Metrics data.
These are the settings for the different types:
# Set a timeout on metrics data. After the timeout has expired, the metrics data will automatically be deleted.
recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:3} # Unit is day
metricsDataTTL: ${SW_CORE_METRICS_DATA_TTL:7} # Unit is day
2
3
https://www.liujiajia.me/2019/6/17/how-to-set-the-expiry-time-of-trace-record-in-skywalking
https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/ttl.md
# 配置Nacos
configuration:
nacos:
# Nacos Server Host
serverAddr: ${SW_CONFIG_NACOS_SERVER_ADDR:127.0.0.1}
# Nacos Server Port
port: ${SW_CONFIG_NACOS_SERVER_PORT:8848}
# Nacos Configuration Group
group: ${SW_CONFIG_NACOS_SERVER_GROUP:skywalking}
# Nacos Configuration namespace
namespace: ${SW_CONFIG_NACOS_SERVER_NAMESPACE:}
# Unit seconds, sync period. Default fetch every 60 seconds.
period: ${SW_CONFIG_NACOS_PERIOD:60}
# Nacos auth username
username: ${SW_CONFIG_NACOS_USERNAME:""}
password: ${SW_CONFIG_NACOS_PASSWORD:""}
# Nacos auth accessKey
accessKey: ${SW_CONFIG_NACOS_ACCESSKEY:""}
secretKey: ${SW_CONFIG_NACOS_SECRETKEY:""}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 问答
显示Mongodb 执行参数信息
修改 agent 配置信息,trace_param 设为true
plugin.mongodb.trace_param=${SW_MONGODB_TRACE_PARAM:false}
2、支持rabbitmq执行信息
将optional-plugins中相应的插件复制一份到plugins中。