# ...
spec:
storage:
schemas:
- version: v13
effectiveDate: 2024-10-25
日志记录 6.1 启用使用 OpenTelemetry 协议 (OTLP) 的 API 端点。由于 OTLP 是一种标准化格式,并非专门为 Loki 设计,因此需要在 Loki 端进行额外配置才能将 OpenTelemetry 的数据格式映射到 Loki 的数据模型。OTLP 缺少诸如 *流标签* 或 *结构化元数据* 等概念。相反,OTLP 将日志条目的元数据作为 **属性** 提供,分为三类
资源
范围
日志
这允许根据需要同时或单独为多个条目设置元数据。
OpenTelemetry 协议 (OTLP) 输出日志转发器只是一个技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让您抢先体验即将推出的产品功能,从而能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅 技术预览功能支持范围。 |
要为 OTLP 摄取配置 LokiStack
自定义资源 (CR),请按照以下步骤操作
确保您的 Loki 设置支持在架构版本 13 中引入的结构化元数据,以启用 OTLP 日志摄取。
设置架构版本
创建新的 LokiStack
CR 时,在存储架构配置中设置 version: v13
。
对于现有配置,添加一个新的架构条目,其中包含 |
按如下所示配置存储架构
# ...
spec:
storage:
schemas:
- version: v13
effectiveDate: 2024-10-25
effectiveDate
过期后,v13 架构生效,使您的 LokiStack
能够存储结构化元数据。
当 Loki 运算符设置为 openshift-logging
模式时,它会自动应用一组默认的属性映射。这些映射将特定的 OTLP 属性与 Loki 的流标签和结构化元数据对齐。
对于典型的设置,这些默认映射应该足够了。但是,在以下情况下,您可能需要自定义属性映射
使用自定义收集器:如果您的设置包含生成附加属性的自定义收集器,请考虑自定义映射以确保这些属性保留在 Loki 中。
调整属性详细级别:如果默认属性集比必要更详细,您可以将其减少到仅包含基本属性。这可以避免过度的数据存储并简化日志记录过程。
未映射到流标签或结构化元数据的属性不会存储在 Loki 中。 |
在 openshift-logging
模式下使用 Loki 运算符时,属性映射遵循 OpenShift 默认值,但可以配置自定义映射以调整这些值。自定义映射允许进一步配置以满足特定需求。
在 openshift-logging
模式下,可以为所有租户或根据需要为各个租户全局配置自定义属性映射。定义自定义映射后,它们将附加到 OpenShift 默认值。如果不需要默认推荐标签,则可以在租户配置中禁用它们。
Loki 运算符和 Loki 本身之间的一个主要区别在于继承处理。Loki 默认情况下仅将 |
在 LokiStack
中,属性映射配置通过 limits
设置进行管理
# ...
spec:
limits:
global:
otlp: {} (1)
tenants:
application:
otlp: {} (2)
1 | 全局 OTLP 属性配置。 |
2 | openshift-logging 模式下,application 租户的OTLP属性配置。 |
全局和每个租户的OTLP配置都可以将属性映射到流标签或结构化元数据。至少需要一个流标签才能将日志条目保存到Loki存储中,因此请确保此配置满足此要求。 |
流标签仅源自资源级属性,LokiStack
资源结构反映了这一点。
spec:
limits:
global:
otlp:
streamLabels:
resourceAttributes:
- name: "k8s.namespace.name"
- name: "k8s.pod.name"
- name: "k8s.container.name"
相反,结构化元数据可以从资源、范围或日志级别属性生成。
# ...
spec:
limits:
global:
otlp:
streamLabels:
# ...
structuredMetadata:
resourceAttributes:
- name: "process.command_line"
- name: "k8s\\.pod\\.labels\\..+"
regex: true
scopeAttributes:
- name: "service.name"
logAttributes:
- name: "http.route"
在Loki中映射类似属性时,通过设置 |
避免对流标签使用正则表达式,因为这会增加数据量。 |