通过段发送时向 Librato 数据添加源

Adding a Source to Librato Data When Sending through Segment

我想弄清楚如何在通过 Segment 发送信息时将源添加到 Librato 中的指标。我正在使用 python 库并尝试为源代码创建一个 属性(如下),但它似乎无法正常工作。

这是我得到的:

     userID = '12345'
     analytics.track(userID, 'event', {
          'value': 1,
          'integrations.Librato.source': userID
     })

我也试过 'source' 和 'Librato.source' 作为属性,Segment 的文档中引用了这些属性。有什么建议吗?

从 Segment 发送时,您无法在属性中设置 Librato 指标的来源,您需要将其作为上下文元数据的一部分发送。 Librato 不接受 'value' 以外的任何属性,因此您作为 属性 发送的任何其他内容都不会被记录。使用python库设置源代码需要如下:

     userID = '12345'
     analytics.track(userID, 'event', {
          'value': 1
     }, {
          'Librato': {
               'source': userID
               }
     })

如果您使用的是 javascript,它将是:

analytics.track({
  userId: '12345',
  event: 'event'
  properties: {
    value: 1
  },
  context: {
     'Librato': {
        'source': userID
     }
  }
});

与 ruby 类似,使用段 gem 您可以像这样指定来源:

require 'analytics-ruby'

segment_token = 'asdfasdf' # The secret write key for my project

Analytics.init({
    secret: segment_token,
    #Optional error handler
    on_error: Proc.necd giw { |status, msg| print msg } })

Analytics.track(
    user_id: 123, 
    writeKey: segment_token, 
    event: 'segment.librato', 
    properties: { value: 42 }, context: { source:'my.source.name' })