Skip to content

fix(lmlogs): release lm-logs chart v0.7.0 #185

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions charts/lm-logs/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
apiVersion: v2
description: A Helm chart for sending k8s logs to Logic Monitor
name: lm-logs
version: 0.6.1
version: 0.7.0
maintainers:
- email: dev@logicmonitor.com
name: LogicMonitor
icon: https://logicmonitor.github.io/helm-charts/lm_logo.png
appVersion: 1.2.0
appVersion: 1.3.0
home: https://logicmonitor.github.io/helm-charts
2 changes: 1 addition & 1 deletion charts/lm-logs/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM fluent/fluentd-kubernetes-daemonset:v1.16-debian-forward-1
USER root
RUN gem install fluent-plugin-lm-logs -v 1.1.0
RUN gem install fluent-plugin-lm-logs -v 1.2.8
RUN gem install fluent-plugin-multi-format-parser -v 1.0.0
16 changes: 9 additions & 7 deletions charts/lm-logs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ The following tables lists the configurable parameters of the lm-logs chart and
| `global.nameOverride` | Global storage class for dynamic provisioning | `""` |
| `global.fullnameOverride` | Global storage class for dynamic provisioning | `""` |
| `global.lm_company_name` | LogicMonitor account name | `nil` |
| `global.lm_company_domain` | LogicMonitor company domain name | `logicmonitor.com` |
| `global.lm_access_id` | LogicMonitor API Token Access ID | `nil` |
| `global.lm_access_key` | LogicMonitor API Token Access Key | `nil` |
| `image.repository` | Container image repository | `logicmonitor/lm-logs-k8s-fluentd` |
Expand All @@ -34,6 +35,7 @@ The following tables lists the configurable parameters of the lm-logs chart and
| `resources.requests.memory` | Container memory resource requests | `700Mi` |
| `fluent.device_less_logs` | beta feature. when set true, do not send resource information. send `service` and `namespace` as metadata when true | `false` |
| `fluent.include_metadata` | if true send all metadata along with log msg | `true` |
| `fluent.resource_type` | If specified, the value will be statically applied to all ingested logs. | `""` |
| `fluent.buffer.memory` | fluentd's buffer memory plugin config | `flush_interval 1s,chunk_limit_size 8m,flush_thread_count 8`|
| `tolerations` | Tolerations for pod assignment | `{}` (evaluated as a template) |
| `nodeSelectors` | Node labels for pod assignment | `{}` (evaluated as a template) |
Expand All @@ -44,7 +46,7 @@ The following tables lists the configurable parameters of the lm-logs chart and
| `kubernetes.multiline_concat_key` | Key to look for fluentD to concatenate multiline logs | `"log"` |


### Avaialble Environment variables
### Available Environment variables
For descriptions see: https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter

* FLUENT_LOG_LEVEL
Expand All @@ -70,24 +72,24 @@ When `fluent.device_less_logs=true`
Anomaly detection will be done on `namespace` and `service`
- namespace will be k8s namespace
- service will be extracted from metadata for yaml in the following priority.
- kubernetets.labels.app ( deployments )
- kubernetets.labels.app_kubernetes_io/name (daemon sets)
- kubernetets.container_name
- kubernetets.pod_name
- kubernetes.labels.app ( deployments )
- kubernetes.labels.app_kubernetes_io/name (daemon sets)
- kubernetes.container_name
- kubernetes.pod_name

#### Multiline log support for k8s lm logs
To use regexp to match beginning of multiline set `kubernetes.multiline_start_regexp=<some-regex-pattern>`
by default the regex is set to `/^\[(\d{4}-)?\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3}.*\]/`

### Logs appearing in cri format
If conatiner runtime is containerD or cri-o, on lm-logs ui you might see logs with prefix eg.
If container runtime is containerD or cri-o, on lm-logs ui you might see logs with prefix eg.
```
2016-10-06T00:17:09.669794202Z stdout F The content of the log entry 1
```
To solve this we need to install lm-logs with following command :
```
helm upgrade --install -n <namespace> \
--set lm_company_name="<comapny>" \
--set lm_company_name="<company>" \
--set lm_access_id="<access_id>" \
--set lm_access_key="<access_key"> \
--set env.FLUENT_CONTAINER_TAIL_PARSER_TYPE="cri" \
Expand Down
2 changes: 2 additions & 0 deletions charts/lm-logs/templates/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@ data:
<match kubernetes.**>
@type lm
company_name {{ if .Values.lm_company_name }} {{ .Values.lm_company_name }} {{ else }} {{ required "A valid .Values.lm_company_name or .Values.global.account entry is required!" .Values.global.account }} {{ end }}
company_domain {{ .Values.lm_company_domain | default .Values.global.companyDomain | default "logicmonitor.com" }}
resource_mapping {"kubernetes.pod_name": "auto.name"}
resource_type {{ .Values.fluent.resource_type | default "" }}
{{- if and ( or .Values.lm_access_id .Values.global.accessID ) ( or .Values.lm_access_key .Values.global.accessKey) }}
access_id {{ .Values.lm_access_id | default .Values.global.accessID }}
access_key {{ .Values.lm_access_key | default .Values.global.accessKey }}
Expand Down
15 changes: 15 additions & 0 deletions charts/lm-logs/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,18 @@
],
"$comment": "ui:lm_company_name-ignore tf:optional"
},
"lm_company_domain": {
"$id": "#/properties/lm_company_domain",
"type": "string",
"title": "Logicmonitor domain name",
"description": "The LogicMonitor domain name.nValue should be trimmed from URL \"company1.logicmonitor.com\"\nexample: lmqauat.logicmonitor.com then \"logicmonitor.com\" must be a valid value.",
"default": "",
"examples": [
"logicmonitor.com",
"lmgov.us"
],
"$comment": "ui:lm_company_domain-ignore tf:optional"
},
"clusterName": {
"$id": "#/properties/clusterName",
"type": "string",
Expand Down Expand Up @@ -281,6 +293,9 @@
"include_metadata": {
"type": "boolean"
},
"resource_type": {
"type" : "string"
},
"buffer": {
"type": "object",
"additionalProperties": false,
Expand Down
5 changes: 4 additions & 1 deletion charts/lm-logs/values.yaml
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
image:
repository: logicmonitor/lm-logs-k8s-fluentd
pullPolicy: Always
tag: "1.2.0"
tag: "1.3.0"

lm_access_id: ""
lm_access_key: ""
lm_company_name: ""
lm_bearer_token: ""
lm_company_domain: ""

global:
accessID: ""
accessKey: ""
account: ""
clusterName: ""
companyDomain: ""

imagePullSecrets: []
nameOverride: ""
Expand All @@ -32,6 +34,7 @@ resources:
fluent:
device_less_logs: false
include_metadata: true
resource_type: ""
buffer:
memory:
flush_interval: 1s
Expand Down
Loading