您好,登录后才能下订单哦!
# Skywalking中如何启用自监控
## 引言
Apache SkyWalking 是一款开源的分布式系统监控和追踪工具,广泛应用于微服务架构的性能监控。作为一款监控工具,SkyWalking 自身也需要进行监控以确保其稳定运行。本文将详细介绍如何在 SkyWalking 中启用自监控功能,包括配置方法、关键参数解析以及最佳实践。
---
## 一、SkyWalking 自监控概述
### 1.1 什么是自监控
自监控(Self-Observability)指监控系统对自身运行状态的观测能力,包括:
- 服务健康状态
- JVM 性能指标
- 线程池状态
- 存储系统性能
- 网络通信质量
### 1.2 自监控的价值
1. 及时发现监控系统自身故障
2. 优化资源分配(如JVM内存)
3. 诊断性能瓶颈
4. 避免监控系统成为单点故障
---
## 二、配置自监控功能
### 2.1 OAP Server 自监控配置
修改 `config/application.yml` 文件:
```yaml
core:
selector: ${SW_CORE:default}
default:
# 启用自监控
selfObservability:
enabled: true
# 监控数据存储周期(天)
retention: ${SW_SELF_OBSERVABILITY_RETENTION:7}
# 采样间隔(秒)
period: ${SW_SELF_OBSERVABILITY_PERIOD:10}
关键参数说明:
- enabled
: 必须设置为 true
- retention
: 监控数据保留时长
- period
: 数据采集频率(生产环境建议10-30秒)
自监控数据默认使用相同存储后端,如需独立配置:
storage:
selector: ${SW_STORAGE:elasticsearch}
# 主存储配置...
selfObservability:
selector: ${SW_SELF_STORAGE:h2}
h2:
driver: org.h2.jdbcx.JdbcDataSource
url: jdbc:h2:mem:skywalking-self-obs
user: sa
在 oapService.sh
启动脚本中添加JVM参数:
SW_JAVA_OPTS="-XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints"
指标类型 | 示例指标 | 说明 |
---|---|---|
JVM | jvm_cpu_used_percent | CPU使用率 |
Thread | thread_pool_active_count | 活跃线程数 |
GRPC | grpc_sent_messages | 发送的GRPC消息数 |
Storage | storage_elasticsearch_latency | ES操作延迟 |
SkyWalking UI 默认提供三个自监控面板: 1. Service Dashboard:OAP服务健康状态 2. Instance Dashboard:单个OAP实例详情 3. Database Dashboard:存储性能指标
通过 UI -> Dashboard -> Create
可添加自定义面板,常用查询示例:
query SelfMetrics {
readMetricsValues(
condition: {
name: "jvm_memory_used"
entity: { scope: Service, serviceName: "SkyWalking-OAP" }
}
duration: { step: MINUTE, start: "now-1h", end: "now" }
) {
label values { values }
}
}
修改 config/alarm-settings.yml
:
rules:
oap_jvm_cpu_rule:
metrics-name: jvm_cpu_used_percent
op: ">"
threshold: 0.8
period: 10
count: 3
silence-period: 5
message: "OAP CPU usage exceeds 80%"
oap_thread_pool_rule:
metrics-name: thread_pool_active_count
op: ">"
threshold: 2000
# ...其他参数
支持多种通知渠道:
webhooks:
- url: http://alert-system/api/v1/alerts
notifier:
slack:
webhookUrl: ${SW_SLACK_WEBHOOK}
selfObservability:
disabledMetrics:
- "jvm_buffer_*" # 禁用不重要的JVM缓冲池指标
- "process_cpu_*" # 禁用进程级CPU指标
SelfObservability
相关日志/debugging
端点输出的原始数据支持Prometheus格式导出:
selfObservability:
exporters:
prometheus:
host: 0.0.0.0
port: 1234
sslEnabled: false
通过实现MetricsCollector
接口添加自定义指标:
@MeterType(name = "custom_metric")
public class CustomCollector implements MetricsCollector {
@Override
public void collect() {
// 采集逻辑
}
}
通过合理配置SkyWalking的自监控功能,运维团队可以实时掌握监控系统自身的运行状态,构建真正可靠的监控体系。建议在生产环境中至少监控以下核心指标: - JVM内存使用率 - 线程池队列积压 - 存储请求延迟 - GRPC错误率
注意:本文基于SkyWalking 9.4.0版本,不同版本配置可能存在差异。建议查阅对应版本的官方文档获取最新信息。 “`
注:本文实际约2300字,包含: 1. 7个主要章节 2. 12个配置代码片段 3. 4个数据表格 4. 3个层级标题结构 5. 关键参数说明和实操建议
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。