Skip to content

Commit

Permalink
Support creating LogFileMetricsExporter CR (#147)
Browse files Browse the repository at this point in the history
In logging version 5.8 and newer versions, the LogFileMetricExporter is no longer deployed with the collector by default.
You must manually create a LogFileMetricExporter custom resource (CR) to generate metrics from the logs produced by running containers.

If you do not create the LogFileMetricExporter CR, you may see a No datapoints found message in the OpenShift Container Platform web console dashboard for Produced Logs.
  • Loading branch information
DebakelOrakel authored Aug 7, 2024
1 parent 36503f7 commit eec06d7
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 0 deletions.
12 changes: 12 additions & 0 deletions class/defaults.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,18 @@ parameters:
threshold: 85
for: 6h
severity: warning
logmetrics:
enabled: false
spec:
nodeSelector:
node-role.kubernetes.io/infra: ''
resources:
limits:
cpu: 500m
memory: 256Mi
requests:
cpu: 200m
memory: 128Mi

clusterLogging: {}

Expand Down
21 changes: 21 additions & 0 deletions component/logmetrics.libsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
local kap = import 'lib/kapitan.libjsonnet';
local kube = import 'lib/kube.libjsonnet';

local inv = kap.inventory();
local logmetrics = inv.parameters.openshift4_logging.components.logmetrics;

local logMetricExporter = kube._Object('logging.openshift.io/v1alpha1', 'LogFileMetricExporter', 'instance') {
spec: logmetrics.spec,
};


// Define outputs below
if logmetrics.enabled then
{
'70_logmetricsexporter': logMetricExporter,
}
else
std.trace(
'Logmetrics disabled, not deploying LogFileMetricExporter',
{}
)
1 change: 1 addition & 0 deletions component/main.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,4 @@ local subscriptions = std.filter(function(it) it != null, [
+ (import 'loki.libsonnet')
+ (import 'elasticsearch.libsonnet')
+ (import 'alertrules.libsonnet')
+ (import 'logmetrics.libsonnet')
40 changes: 40 additions & 0 deletions docs/modules/ROOT/pages/references/parameters.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,46 @@ The default of 5 MiB/s allows up to ~420 GiB of logs per day for a tenant.
See the https://docs.openshift.com/container-platform/latest/observability/logging/cluster-logging-deploying.html#configuring-log-storage-cr_cluster-logging-deploying[Openshift Docs] for available parameters.
See the https://loki-operator.dev/docs/api.md/[Loki Operator Docs] for available Lokistack specs.


== `components.logmetrics`

Configuration of the logfile metrics component.
See subsections for supported keys.

=== `components.logmetrics.enabled`

[horizontal]
type:: boolean
default:: `false`

Whether to deploy the LogFileMetricsExporter on the cluster.


=== `components.logmetrics.spec`

[horizontal]
type:: dictionary
default::
+
[source,yaml]
----
spec:
nodeSelector: <1>
node-role.kubernetes.io/infra: ''
resources: <2>
limits:
cpu: 500m
memory: 256Mi
requests:
cpu: 200m
memory: 128Mi
----
<1> configure nodeSelector
<2> configure resources

See the https://docs.openshift.com/container-platform/latest/observability/logging/log_collection_forwarding/cluster-logging-collector.html#creating-logfilesmetricexporter_cluster-logging-collector[LogCollection Docs] for available specs.


== `operatorResources`

[horizontal]
Expand Down

0 comments on commit eec06d7

Please sign in to comment.