- 欢迎使用 SkyWalking
- 观测分析语言 Observability Analysis Language, OAL
- 仪表系统
- 设计目标
- 为什么 SkyWalking 体系中没有使用 MQ?
- 探针简介
- 观测分析平台
- 可视化
- 选择接收器
- 服务自动打点代理
- 手动打点 SDK
- 服务网格探针
- SkyWalking Java 代理支持列表
- 设置
- 协议
- 作用域 Scopes 和字段 Fields
- 概念与设计
- Backend 启动
- Backend 存储
- 安装 Java agent
- Open Fetcher
- 概念与设计总览
- 设置开发环境
- 组件库设置
- 插件自动测试框架
- 使用命令行导出
- 操作名称分组规则
- Spring 注解插件
- Oracle 和 Resin 插件
- 支持忽略自定义的 trace
- 支持自定义增强
- 配置覆盖
- 支持传输层安全性协议(TLS)
- 命名空间
- 令牌认证
- 令牌认证
- 兼容 OpenTracing 的 Skywalking tracer
- 安装 log4j
- 安装 log4j2
- logback 插件
- 应用程序工具包跟踪
- 跨线程追踪
- 通过系统属性动态定义 agent 配置文件
- 插件开发指南
- 在 Kubernetes 中部署
- 通过 ALS 观测服务网格
- UI
- 与 Istio 协作
- 配置 Envoy 来向 SkyWalking 发送度量指标
- 快速入门
- V6 升级
- SkyWalking 跨进程传播的头部协议
- OAP server 支持 gPRC SSL 传输
- 贡献指南
- 数据存储扩展
- 启动模式
- 设置的覆盖
- IP 和端口设置
- 初始化模式
- 集群管理
- 服务器端的跟踪采样
- 慢 SQL 语句设置
- 官方 OAL 脚本
- 告警
- 高级部署
- Metrics Exporter
- TTL
- 动态配置
- 无法打点的网关/代理
- 应用性能指数
- 端点分组参数化
- 后台遥测数据
- Apache SkyWalking 代码提交者
- 如何构建项目
- 新度量指标的源和范围扩展
- 后端存储实体扩展
- 线程转储归并机制
Backend 启动
首先也是最重要的是,Skywalking backend启动行为由config/application.yml
驱动。 了解这个设置文件将帮助您阅读此文档。
启动脚本
默认的启动脚本是/bin/oapService.sh
(.bat)。 阅读start up mode 可了解启动backend的其它选项。
application.yml
这个设置文件背后的核心概念是,Skywalking的Collector基于纯模块化设计。 最终用户可以根据自己的需求切换或组装收集器功能。
所有, 在application.yml
里有三个级别。
- Level 1, 模块名。模块定义项。
- Level 2, 模块类型。 设置模块类型。
- Level 3. 类型属性。
例如:
storage:
selector: mysql # the mysql storage will actually be activated, while the h2 storage takes no effect
h2:
driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}
url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}
user: ${SW_STORAGE_H2_USER:sa}
metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}
mysql:
properties:
jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest"}
dataSource.user: ${SW_DATA_SOURCE_USER:root}
dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root@1234}
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}
# other configurations
storage
is the 模块名.selector
模块类型.default
模块默认属性.driver
,url
, ...metadataQueryMaxSize
类型属性.
同时,模块包括必修模块和可选模块,必修模块提供后端框架, 即使模块化支持可插拔,删除这些模块是没有意义的,对于可选模块,其中一些有 一个名为“none”的提供程序实现,这意味着它只提供一个没有实际逻辑的shell,典型的例子是telemetry。 将“-”设置为“selector”意味着在运行时将排除整个模块。 我们强烈建议您不要尝试更改这些模块的api,除非你非常了解SkyWalking项目及其代码。
必须的模块列表
- Core。做所有数据分析和流调度的基本和主要框架。
- Cluster。管理集群中的多个后端实例,这可以提供高吞吐量的处理能力。
- Storage。持久化分析结果。
- Query。提供查询接口给UI。
对于Cluster 和Storage 有多个实现者(提供者), 查看 Cluster management 和 Choose storage 的高级特性的文档链接列表
在理解了设置文件结构之后,您可以选择您感兴趣的功能文档。 我们建议您按照以下顺序阅读功能文档。
- Overriding settings。支持重写application.yml中的设置。
- IP and port setting。介绍如何设置和使用IP和端口。
- Backend init mode startup。如何初始化环境并优雅地退出。 在尝试初始化新群集之前,请阅读此内容。
- Cluster management。指导您将backend服务器设置为群集模式。
- Deploy in kubernetes.。指导您构建和使用Skywalking图像,并在K8S中部署。
- Choose storage.如我们所知,在默认的快速启动中,backend 使用h2数据库运行。但显然,它不符合产品环境。在这里,你可以找到其他的选择。 选择你喜欢的,我们也欢迎任何人贡献新的存储实施者,
- Set receivers。 你可以根据你的要求选择接收者,大多数接收者是无害的,至少我们的默认接收器是无害的。您可以设置并激活所有提供的接收器。
- Open fetchers. 你可以从目标应用程序读取指标。它们的工作原理就像接收器,但在拉取模式下,就像典型的普罗米修斯.
- Token authentication. 你可以添加令牌身份验证机制,以避免“OAP”接收不可信的数据.
- 在backend进行trace sampling 。 此示例保持度量的准确性,但不保存某些存储中依赖于速率的traces。
- 根据 slow DB statement threshold 配置文档可了解如何检测系统中的慢速数据库语句(包括SQL语句)。
- 官方 OAL scripts。正如您从我们的OAL introduction中所知, 大多数backend分析功能都基于脚本。这是对官方手稿的描述,这有助于您了解正在处理的度量数据,也可以用于警报。
- Alarm. 告警提供基于时间序列的检查机制。你可以设置针对分析OAL度量对象的告警规则。
- Advanced deployment options。如果你需要部署的backend有很大的扩展性并支持高负载,你需要看看这个。
- Metrics exporter. 使用metrics data导出器将metric数据转发给第三方系统。
- Time To Live (TTL). Metrics 和 trace 是时间序列数据, 因此可能会被永久存储, 你可以设置各个维度的过期时间。
- Dynamic Configuration. 从远程服务拉取动态改变OAP配置或第三方配置。
- Uninstrumented Gateways. 配置SkyWalking代理插件不支持的网关/代理,在拓扑图中反映委托信息。
- Apdex threshold. 如果在OAL中激活Apdex计算,则需要为不同的服务配置阈值。
- Group Parameterized Endpoints. 为参数化端点配置分组规则,以改进指标的意义。
backend 遥测
OAP后端集群本身的底层是一个分布式流处理系统。为了帮助运营团队,我们为OAP后端本身提供遥测。按照document使用它。
FAQs
何时以及为何我们需要设置时区
SkyWalking 提供了降取样时间序列指标的功能. 根据各个时间维度(如分钟, 小时, 天, 月)进行查询和存储时的时间格式化会涉及到时区。
比如说, 按分钟维度的指标时间将会被格式化成 YYYYMMDDHHmm 格式, 格式化过程是和时区相关的。
默认情况下, SkyWalking OAP 后端选择操作系统的默认时区, 如果你想覆盖这个行为, 请按照普通 Java 程序和操作系统设置的相关文档进行设置。
如何通过第三方工具查询存储信息?
SkyWalking提供了浏览器UI、CLI和GraphQL方式来支持扩展. 但有些用户可能会想到直接从存储中查询数据。 比如在ElasticSearch的例子中,Kibana就是一个很好的工具。
在默认情况下,由于减少内存、网络和存储空间的使用, skywalk只在实体中保存id,而元数据只保存在“*_inventory”实体中。 在这种特殊情况下这些工具通常不支持嵌套查询,或者工作起来不方便。 SkyWalking提供了一个配置,将所有必要的name列添加到最终的度量实体中,以ID作为权衡。
看一下'application.yaml'中配置“core/default/activeExtraModelColumns”,并将其设置为true以打开该特性。
这个特性不会为本地的skywalk场景提供任何新特性,只用于第三方集成。.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论