元数据
编辑元数据
编辑元数据可以丰富您的事件,并使应用程序性能监控更加有用。让我们探索 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