Sha256: 9a6f4d51faa323cdc7569601de0b3846026be16d60d1e7be04d5087357173bfa

Contents?: true

Size: 738 Bytes

Versions: 1

Compression:

Stored size: 738 Bytes

Contents

class KubernetesLabelsTagAppender
  class ReEmitException < Exception
  end

  attr_reader :labels

  def initialize(labels)
    @labels = labels
  end

  def events(tag, time, record)
    [
      event(tag, time, record)
    ]
  end

  def event(tag, time, record)
    new_tag = if record.has_key?('kubernetes') && record['kubernetes'].has_key?('labels')
                append(tag, record['kubernetes']['labels'])
              else
                tag
              end

    raise ReEmitException.new('Will not re-emit because the tag has not changed.') if new_tag == tag

    [
      new_tag,
      time,
      record
    ]
  end

  private

  def append(tag, data)
    @labels.reduce(tag) { |t, l| "#{t}.#{l}=#{data[l]}" }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fluent-plugin-append-kubernetes-labels-to-tag-0.0.3.pre.alpha5 lib/kubernetes_labels_tag_appender.rb