元数据
编辑元数据
编辑元数据可以丰富您的事件,并使应用程序性能监控更有用。让我们来探索 Elastic APM 提供的不同类型的元数据。
标签
编辑标签为事务、跨度和错误添加索引信息。索引意味着数据在 Elasticsearch 中是可搜索和可聚合的。添加额外的键值对以定义多个标签。
标签值可以是字符串、布尔值或数字,尽管目前某些代理仅支持字符串值。因为给定键的标签(无论使用哪个代理)都存储在 Elasticsearch 中的同一位置,所以给定键的所有标签值必须具有相同的数据类型。每个键使用多种数据类型将引发异常,例如:不允许使用 {foo: bar}
和 {foo: 42}
。
避免定义过多的用户指定标签。在一个索引中定义过多的唯一字段会导致映射爆炸。
- Go:
SetLabel
- Java:
setLabel
- .NET:
SetLabel
- Node.js:
setLabel
|addLabels
- 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
|SetUserID
|SetUserEmail
- iOS: 即将推出
- Java:
setUser
- .NET 即将推出
- Node.js:
setUserContext
- PHP: 即将推出
- Python:
set_user_context
- Ruby:
set_user
- Rum:
setUserContext