元数据
Elastic Stack Serverless
元数据可以丰富您的事件并使应用程序性能监控更加有用。 让我们探索 Elastic APM 提供的不同类型的元数据。
标签将 索引 信息添加到事务、Span 和错误。 索引意味着可以在 Elasticsearch 中搜索和聚合数据。 添加额外的键值对以定义多个标签。
标签值可以是字符串、布尔值或数字,尽管目前某些代理仅支持字符串值。 因为给定键的标签(无论使用哪种代理)都存储在 Elasticsearch 中的同一位置,所以给定键的所有标签值都必须具有相同的数据类型。 每个键的多种数据类型将引发异常,例如:不允许 {foo: bar}
和 {foo: 42}
。
重要提示
避免定义过多用户指定的标签。 在索引中定义太多唯一字段是一种可能导致 映射爆炸 的情况。
- Go:
SetLabel
- Java:
setLabel
- .NET:
SetLabel
- Node.js:
setLabel
- PHP:
Transaction
setLabel
|Span
setLabel
- Python:
elasticapm.label()
- Ruby:
set_label
- Rum:
addLabels
自定义上下文将 未索引 的自定义上下文信息添加到事务和错误。 未索引意味着数据不可在 Elasticsearch 中搜索或聚合,并且您无法基于该数据构建仪表板。 这也意味着您不必担心 映射爆炸,因为这些字段不会添加到映射中。
未索引的信息对于提供上下文信息以帮助您快速调试性能问题或错误很有用。
重要提示
设置循环对象、大型对象或非 JSON 可序列化对象可能会导致错误。
- Go:
SetCustom
- iOS:即将推出
- Java:
addCustomContext
- .NET:即将推出
- Node.js:
setCustomContext
- PHP:即将推出
- Python:
set_custom_context
- Ruby:
set_custom_context
- Rum:
setCustomContext
用户上下文将 已索引 的用户信息添加到事务和错误。 索引意味着数据可在 Elasticsearch 中搜索和聚合。
- Go:
SetUsername
- iOS:即将推出
- Java:
setUser
- .NET 即将推出
- Node.js:
setUserContext
- PHP:即将推出
- Python:
set_user_context
- Ruby:
set_user
- Rum:
setUserContext