# Backend启动

首先也是最重要的是,Skywalking backend启动行为由config/application.yml驱动。 了解这个设置文件将帮助您阅读此文档。

# 启动脚本

默认的启动脚本是/bin/oapService.sh(.bat)。 阅读start up mode 可了解启动backend的其它选项。

# application.yml

这个设置文件背后的核心概念是,Skywalking的Collector基于纯模块化设计。 最终用户可以根据自己的需求切换或组装收集器功能。

所有, 在application.yml里有三个级别。

  1. Level 1, 模块名。说明该模块在运行模式可用。
  2. Level 2, 提供者名。 设置模块的提供者名。
  3. Level 3. 提供者的设置。

事例:

core:
  default:
    restHost: 0.0.0.0
    restPort: 12800
    restContextPath: /
    gRPCHost: 0.0.0.0
    gRPCPort: 11800
  1. core 就是模块。.
  2. default 是core模块的默认实现。.
  3. restHost, restPort, ... gRPCHost 是实现者的所有设置项。

同时,模块包括必选模块和可选模块,所需模块提供了backend的框架。即使模块化支持可插拔,删除这些模块也是没有意义的。我们强烈建议你不要试图更改这些模块的API,除非您非常了解Skywalking项目及其代码。

必须的模块列表

  1. Core。做所有数据分析和流调度的基本和主要框架。
  2. Cluster。管理集群中的多个后端实例,这可以提供高吞吐量的处理能力。
  3. Storage。持久化分析结果。
  4. Query。提供查询接口给UI。

对于ClusterStorage 有多个实现者(提供者), 查看 link list下的 Cluster managementChoose storage 的文档。

一些receiver 模块也提供了。 Receiver是一个模块,负责接受后端的传入数据请求。大多数(所有)通过一些rpc协议,如GRPC和HTTPrestful提供。 Receiver有许多不同的模块名,你可以阅读link list中的Set receivers文档。

# 高级特性的文档链接列表

在理解了设置文件结构之后,您可以选择您感兴趣的功能文档。 我们建议您按照以下顺序阅读功能文档。

  1. Overriding settings。支持重写application.yml中的设置。
  2. IP and port setting。介绍如何设置和使用IP和端口。
  3. Backend init mode startup。如何初始化环境并优雅地退出。 在尝试初始化新群集之前,请阅读此内容。
  4. Cluster management。指导您将backend服务器设置为群集模式。
  5. Deploy in kubernetes.。指导您构建和使用Skywalking图像,并在K8S中部署。
  6. Choose storage.如我们所知,在默认的快速启动中,backend 使用h2数据库运行。但显然,它不符合产品环境。在这里,你可以找到其他的选择。 选择你喜欢的,我们也欢迎任何人贡献新的存储实施者,
  7. Set receivers。 你可以根据你的要求选择接收者,大多数接收者是无害的,至少我们的默认接收器是无害的。您可以设置并激活所有提供的接收器。
  8. 在backend进行trace sampling 。 此示例保持度量的准确性,但不保存某些存储中依赖于速率的traces。
  9. 根据 slow DB statement threshold 配置文档可了解如何检测系统中的慢速数据库语句(包括SQL语句)。
  10. 官方 OAL scripts。正如您从我们的OAL introduction中所知,大多数backend分析功能都基于脚本。这是对官方手稿的描述,这有助于您了解正在处理的度量数据,也可以用于警报。
  11. Alarm. 告警提供基于时间序列的检查机制。你可以设置针对分析OAL度量对象的告警规则。
  12. Advanced deployment options。如果你需要部署的backend有很大的扩展性并支持高负载,你需要看看这个。
  13. Metrics exporter. 使用metrics data导出器将metric数据转发给第三方系统。
  14. Time To Live (TTL). Metrics 和 trace 是时间序列数据, 因此可能会被永久存储, 你可以设置各个维度的过期时间.

# backend 遥测

OAP后端集群本身的底层是一个分布式流处理系统。为了帮助运营团队,我们为OAP后端本身提供遥测。按照document使用它。

# FAQs

# 何时以及为何我们需要设置时区

SkyWalking 提供了降取样时间序列指标的功能. 根据各个时间维度(如分钟, 小时, 天, 月)进行查询和存储时的时间格式化会涉及到时区.

比如说, 按分钟维度的指标时间将会被格式化成 YYYYMMDDHHmm 格式, 格式化过程是和时区相关的.

默认情况下, SkyWalking OAP 后端选择操作系统的默认时区, 如果你想覆盖这个行为, 请按照普通 Java 程序和操作系统设置的相关文档进行设置.