fluent-plugin-lm-logs 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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