优化 Instana 中的数据摄取
在现代可观测性实践中,高效管理数据采集对于维持应用程序性能和基础设施可靠性至关重要。 您可以在 Instana 中优化来自各类监控源的数据采集,包括追踪、基础设施、终端用户监控、合成监控、日志记录以及无服务器环境。 该策略提供了可操作的技术手段,例如仪器过滤、传感器配置、轮询率调整和选择性监控,以减少噪声、提升性能并保持可观察性效率。
管理从追踪中摄入的数据
高效的追踪数据管理始于周密的仪器配置。 通过选择性启用、禁用或过滤跨度,团队能够减少数据摄入量、降低噪声影响,并仅保留相关跟踪记录——同时确保对关键工作流的可视性。
您可以使用以下跟踪数据采集控制项:
忽略端点
将低价值操作从跟踪中排除,以减少噪声和数据量。
按属性筛选跨度
根据 URL、方法、状态码、头部、查询参数、SQL 语句或错误消息等属性排除相关片段。
限制堆栈跟踪的捕获
控制堆栈跟踪的深度,以减少噪声并提高性能。
禁用所选的仪器
取消对选定技术、库或流程的跟踪,这些内容您无需进行监控。
更改主机代理模式
将主机代理切换至“基础设施”模式,以禁用主机上的所有跟踪器。
通过编程方式禁用跟踪
使用应用程序逻辑(例如 header
X-INSTANA-S header)来屏蔽选定的跟踪记录。
有关追踪器相关的支持、版本要求和配置语法,请参阅“追踪器的摄入控制”。
若要减少主机层面的监控,请参阅“忽略进程”。
管理从基础设施摄取的数据
默认情况下, Instana 会通过自动发现功能启用所有传感器,但您可根据需要通过配置文件禁用它们。 大多数传感器支持可配置的轮询速率,但 Azure 传感器除外。 更大的传感器还支持过滤功能,可限制监控对象范围,从而减少不必要的数据摄入。 此外,您还可以在配置文件中调整轮询间隔,以精细化数据采集并优化性能。 以下示例概述了在代理配置文件中配置 ibmmq 插件部分的设置:
com.instana.plugin.ibmmq:
enabled: true
poll_rate: 75
如需更多信息,请参阅“配置轮询率”。
助力高效数据摄取的传感器
下表解释了某些类型传感器摄入量高的原因:
| 传感器类型 | 示例 | 摄入量高的原因 |
|---|---|---|
| 消息系统传感器 | IBM MQ, TibcoEMS | 由于在环境中扮演核心角色且涉及大量实体(队列、主题等),因此会生成海量数据 他们监控。 |
| 平台传感器 | Kubernetes , vSphere, PCF | 频繁更新和详细指标有助于实现大量数据摄取。 |
| Prometheus 传感器 | Prometheus | 可配置的轮询间隔支持数据采集调优。 如需更多信息,请参阅 《 Kubernetes 环境配置》。 |
某些传感器数据摄入量高的原因
消息系统通常处理大量事务和实体,这自然会产生海量数据。 同样,能够监测多种实体和多样化指标的传感器有助于提升数据采集能力。 为缓解此问题,部分传感器支持在配置文件中使用正则表达式,使团队能够筛选并限制被监控实体的数量。
优化策略
实体过滤
您可以在配置文件中使用正则表达式来仅监控实体子集。
投票率调整
对于支持配置轮询间隔的传感器,您可以调整轮询频率以减少数据量。 有关轮询间隔配置的更多信息,请参阅以下配置章节:
云托管服务( AWS、 Azure、 GCP )
您可以使用云标签来选择性地将托管服务实例纳入或排除在监控范围之外。 以下示例演示了如何使用云标签:
com.instana.plugin.aws.rds: include_tags: # Comma separated list of tags in key:value format (For example, env:prod,env:staging)com.instana.plugin.aws.rds: exclude_tags: # Comma separated list of tags in key:value format (For example, env:dev,env:test)选择性监测
Instana 支持“加入”和“退出”机制,用于控制哪些进程和容器被监控。 默认情况下,代理以“选择退出”模式运行。 当
INSTANA_SELECTIVE_MONITORING未设置或设置为OPT_OUT时,代理会监控所有进程,除非您明确将其排除在外。- 过程与容器级控制
您可以通过配置设置将特定进程或容器纳入或排除在监控范围之外。 如需了解更多信息,请参阅 Instana 选择性监控。
监视方式 描述 代理环境 工艺环境 结果 选择性停用 默认情况下监控的所有进程 未设置或 INSTANA_SELECTIVE_MONITORING=OPT_OUT未设置 该过程受到监控 选择性停用 默认情况下监控的所有进程 未设置或 INSTANA_SELECTIVE_MONITORING=OPT_OUTINSTANA_MONITORING=false该过程被忽略 选择性加入 默认情况下未监控任何进程 INSTANA_SELECTIVE_MONITORING=OPT_IN未设置 该过程被忽略 选择性加入 默认情况下未监控任何进程 INSTANA_SELECTIVE_MONITORING=OPT_ININSTANA_MONITORING=true该过程受到监控 - Kubernetes 命名空间标签用于命名空间退出和加入
Instana 允许您通过标签
instana-workload-monitoring在 Kubernetes 命名空间级别控制工作负载监控。 此标签决定命名空间是否被纳入或排除在监控范围之外:instana-workload-monitoring=false→ 退出:该命名空间内所有工作负载的监控功能均已禁用。instana-workload-monitoring=true→ 主动选择加入:为命名空间中的工作负载启用了监控功能。
管理来自终端用户监控(EUM)的数据采集
每个浏览器标签页收集的数据量都有预设的限制(这些是 Instana 的默认设置,无法更改)。 要管理来自EUM的数据摄取,您可以决定是否启用或禁用以下某些可选功能:
- 自定义事件。 例如, 禁用将 User-Timing API 标记自动转换为自定义事件的功能。
- 视图或页面过渡
- 用户信息
- 崩溃
管理来自合成数据的摄入
为最大限度减少 Instana 中合成测试的数据摄入,请考虑以下方法:
- 在浏览器测试中禁用视频录制功能(此为默认设置)
- 限制截图捕获,因为截图通常仅在测试失败时才会进行
- 通过增加间隔时间(在 Instana 中称为调度频率(单位:分钟))来减少执行测试的数量,从而提高测试频率
- 当不需要合成监控时停止测试执行
管理来自日志源的数据摄取
Instana 提供控制日志源数据摄取的选项:
- OpenTelemetry 日志
您可以通过限制向日志系统写入数据的 OpenTelemetry 源数量来管理日志体积。 这有助于减少不必要的数据摄入,并提高整体效率。
- 跟踪日志
Instana 追踪器提供了在支持的技术中禁用日志记录功能的灵活性。 以下配置适用于 Java、 Node.js、 Go、 PHP 和 Ruby 的追踪器级别。
在 Instana 中管理从无服务器监控摄取的数据
Instana 目前仅提供有限的无服务器技术支持,主要侧重于 AWS Lambda 函数。 为优化数据采集并有效管理相关成本,可考虑以下策略:
- 管理 Lambda 函数版本
默认情况下, Instana 会监控每个Lambda函数最近的五个版本。 您可以减少这个数字以降低监控成本。 Instana 支持监控多达20个版本,但版本数量较少通常意味着数据量和成本的降低。 有关更多信息,请参阅《 禁用 Lambda 版本和指标的检索》。
- 调整轮询间隔
Lambda 指标的默认轮询间隔为 5 分钟(300 秒)。 增加该间隔会降低数据采集频率,有助于最大限度地降低摄入成本。 有关更多信息,请参阅 《更改轮询速率》。
结束语
对于希望完全掌控监控功能的用户, Instana 提供了使用 OpenTelemetry 替代其原生监控功能的灵活性。 这使得可观测性数据的收集和管理更加灵活可定制。 如需了解更多信息,请访问 OpenTelemetry。
这些策略有助于组织优化 Instana 中的数据摄取,在提升效率的同时保持对可观测性的高度关注。 这使得可观测性数据的管理方式更加精简高效。