fluent-plugin-lm-logs 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c2298de6fe81e9eb49052ee49d55180193d254fee912339b9c8f6fad6c7aea1
4
- data.tar.gz: 0a64fdb982ca4d8768175db534198b942d96fdcb22519913c5c077b7201bb6ea
3
+ metadata.gz: fbacc1e0e4eb5389c11d4b23c28eda6100919da6d7de0abbda9edf13dffbf682
4
+ data.tar.gz: 3bffdba784febf493f69ba0be9c1745f53d7aebb8f66ef92bf23b252fb91d2bb
5
5
  SHA512:
6
- metadata.gz: 95fe45b670b97925e672ecad76a724ed9eef24fd1e1685a131a4375ac7e662161aa5612ec34f3fc99e0f5817b24e7d640481b457bd466f2d2b3455f8e004e394
7
- data.tar.gz: c69f47a5aad81cb1fbf778f14bc3238ee0271cb9530516a31120e46829aa7cf28336d509f9d6be2ddb155794ec9926896b2fc9738f524a30cf222f31013e322c
6
+ metadata.gz: 34362b69e402d439ee415089540a5f3d1532bb5f44c997bca79437e57a64286579b3e9c8349ebb44095bf86e976e2b197ddd9f7f20a32600e2c164685310b62e
7
+ data.tar.gz: '0631937f8f545e675735e207d6e6137748ef0bc1445cdab27c1b0179f0513daa271fbee4bcbe9000aa8fea1df155e5f208f82fdb6002a6e58f133f09c2616e57'
data/README.md CHANGED
@@ -70,7 +70,7 @@ See the [LogicMonitor Helm repository](https://github.com/logicmonitor/k8s-helm-
70
70
  | `debug` | When `true`, logs more information to the fluentd console. |
71
71
  | `force_encoding` | Specify charset when logs contains invalid utf-8 characters. |
72
72
  | `include_metadata` | When `true`, appends additional metadata to the log. default `false`. |
73
- | `device_less_logs` | When `true`, do not map log with any resource. record must have `service` and `namespace` when `true`. default `false`. |
74
- | `metadata_to_exclude` | `String array` of keys of metadata to exclude. default `empty` |
73
+ | `device_less_logs` | When `true`, do not map log with any resource. record must have `service` when `true`. default `false`. |
74
+
75
75
 
76
76
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "fluent-plugin-lm-logs"
8
- spec.version = '1.0.2'
8
+ spec.version = '1.0.3'
9
9
  spec.authors = ["LogicMonitor"]
10
10
  spec.email = "rubygems@logicmonitor.com"
11
11
  spec.summary = "LogicMonitor logs fluentd output plugin"
@@ -38,8 +38,6 @@ module Fluent
38
38
  config_param :version_id, :string, :default => "version_id"
39
39
 
40
40
  config_param :device_less_logs, :bool, :default => false
41
-
42
- config_param :metadata_to_exclude, :array, default: [], value_type: :string
43
41
 
44
42
  # This method is called before starting.
45
43
  # 'conf' is a Hash that includes configuration parameters.
@@ -87,6 +85,11 @@ module Fluent
87
85
  def process_record(tag, time, record)
88
86
  resource_map = {}
89
87
  lm_event = {}
88
+
89
+ if @include_metadata
90
+ lm_event = get_metadata(record)
91
+ end
92
+
90
93
  if !@device_less_logs
91
94
  if record["_lm.resourceId"] == nil
92
95
  @resource_mapping.each do |key, value|
@@ -101,6 +104,13 @@ module Fluent
101
104
  else
102
105
  lm_event["_lm.resourceId"] = record["_lm.resourceId"]
103
106
  end
107
+ else
108
+ if record["service"]==nil
109
+ log.error "When device_less_logs is set \'true\', record must have \'service\'. Ignoring this event #{lm_event}."
110
+ return nil
111
+ else
112
+ lm_event["service"] = encode_if_necessary(record["service"])
113
+ end
104
114
  end
105
115
 
106
116
  if record["timestamp"] != nil
@@ -109,35 +119,35 @@ module Fluent
109
119
  lm_event["timestamp"] = Time.at(time).utc.to_datetime.rfc3339
110
120
  end
111
121
 
112
- if @include_metadata
113
- record.each do |key, value|
114
- case key
115
- when *@metadata_to_exclude.concat(["timestamp","_lm.resourceId","log","message"])
116
- else
117
- lm_event["#{key}"] = value
118
-
119
- if @force_encoding != ""
120
- lm_event["#{key}"] = lm_event["#{key}"].force_encoding(@force_encoding).encode("UTF-8")
121
- end
122
- end
122
+ lm_event["message"] = encode_if_necessary(record["message"])
123
+
124
+ return lm_event
125
+ end
126
+
127
+ def get_metadata(record)
128
+ #if encoding is not defined we will skip going through each key val
129
+ #and return the whole record for performance reasons in case of a bulky record.
130
+ if @force_encoding == ""
131
+ return record
132
+ else
133
+ lm_event = {}
134
+ record.each do |key, value|
135
+ lm_event["#{key}"] = get_encoded_string(value)
123
136
  end
137
+ return lm_event
124
138
  end
125
- lm_event["message"] = record["message"]
126
-
139
+ end
140
+
141
+ def encode_if_necessary(str)
127
142
  if @force_encoding != ""
128
- lm_event["message"] = lm_event["message"].force_encoding(@force_encoding).encode("UTF-8")
143
+ return get_encoded_string(str)
144
+ else
145
+ return str
129
146
  end
147
+ end
130
148
 
131
- if @device_less_logs
132
- if record["service"]==nil || record["namespace"] == nil
133
- log.error "When device_less_logs is set \'true\', record must have \'service\' and \'namespace\'. Ignoring this event #{lm_event}."
134
- return nil
135
- else
136
- lm_event["service"] = record["service"]
137
- lm_event["namespace"] = record["namespace"]
138
- end
139
- end
140
- return lm_event
149
+ def get_encoded_string(str)
150
+ return str.force_encoding(@force_encoding).encode("UTF-8")
141
151
  end
142
152
 
143
153
  def send_batch(events)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-lm-logs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - LogicMonitor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-02 00:00:00.000000000 Z
11
+ date: 2022-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd