diff --git a/production/ksonnet/loki/distributor.libsonnet b/production/ksonnet/loki/distributor.libsonnet index ac767705704406dc59ec655463c7baa6ee42e69d..dabddc917edd97c7edf7c11f159ab37718b19da8 100644 --- a/production/ksonnet/loki/distributor.libsonnet +++ b/production/ksonnet/loki/distributor.libsonnet @@ -10,7 +10,9 @@ distributor_container:: container.new('distributor', $._images.distributor) + container.withPorts($.util.defaultPorts) + - container.withArgsMixin($.util.mapToFlags($.distributor_args)), + container.withArgsMixin($.util.mapToFlags($.distributor_args)) + + $.util.resourcesRequests('0.5', '100Mi') + + $.util.resourcesLimits('1', '200Mi'), local deployment = $.apps.v1beta1.deployment, diff --git a/production/ksonnet/loki/ingester.libsonnet b/production/ksonnet/loki/ingester.libsonnet index 31860be20fcbc0a5876d67157f35c9f93f8e7d9f..2267209bbdff9141040a3b803eb199c8bd01b423 100644 --- a/production/ksonnet/loki/ingester.libsonnet +++ b/production/ksonnet/loki/ingester.libsonnet @@ -13,7 +13,9 @@ container.mixin.readinessProbe.httpGet.withPath('/ready') + container.mixin.readinessProbe.httpGet.withPort(80) + container.mixin.readinessProbe.withInitialDelaySeconds(15) + - container.mixin.readinessProbe.withTimeoutSeconds(1), + container.mixin.readinessProbe.withTimeoutSeconds(1) + + $.util.resourcesRequests('1', '5Gi') + + $.util.resourcesLimits('2', '10Gi'), local deployment = $.apps.v1beta1.deployment, diff --git a/production/loki-mixin/dashboards.libsonnet b/production/loki-mixin/dashboards.libsonnet index d2587cd2411951126585ff57f9a9b554b6a25e0d..81b62f05728d636566bc1147b61fe48a03f1a3fe 100644 --- a/production/loki-mixin/dashboards.libsonnet +++ b/production/loki-mixin/dashboards.libsonnet @@ -5,44 +5,44 @@ local utils = import "mixin-utils/utils.libsonnet"; dashboards+: { 'loki-writes.json': g.dashboard('Loki / Writes') - .addTemplate('cluster', 'kube_pod_container_info{image=~".*loki.*"}', 'cluster') - .addTemplate('namespace', 'kube_pod_container_info{image=~".*loki.*"}', 'namespace') + .addMultiTemplate('cluster', 'kube_pod_container_info{image=~".*loki.*"}', 'cluster') + .addMultiTemplate('namespace', 'kube_pod_container_info{image=~".*loki.*"}', 'namespace') .addRow( g.row('Frontend (cortex_gw)') .addPanel( g.panel('QPS') + - g.qpsPanel('cortex_gw_request_duration_seconds_count{cluster="$cluster", job="$namespace/cortex-gw", route="cortex-write"}') + g.qpsPanel('cortex_gw_request_duration_seconds_count{cluster=~"$cluster", job=~"($namespace)/cortex-gw", route="cortex-write"}') ) .addPanel( g.panel('Latency') + - utils.latencyRecordingRulePanel('cortex_gw_request_duration_seconds', [utils.selector.eq('job', '$namespace/cortex-gw'), utils.selector.eq('route', 'cortex-write')], extra_selectors=[utils.selector.eq('cluster', '$cluster')]) + utils.latencyRecordingRulePanel('cortex_gw_request_duration_seconds', [utils.selector.re('job', '($namespace)/cortex-gw'), utils.selector.eq('route', 'cortex-write')], extra_selectors=[utils.selector.re('cluster', '$cluster')]) ) ) .addRow( g.row('Distributor') .addPanel( g.panel('QPS') + - g.qpsPanel('loki_request_duration_seconds_count{cluster="$cluster", job="$namespace/distributor", route="api_prom_push"}') + g.qpsPanel('loki_request_duration_seconds_count{cluster=~"($cluster)", job=~"($namespace)/distributor"}') ) .addPanel( g.panel('Latency') + - utils.latencyRecordingRulePanel('loki_request_duration_seconds', [utils.selector.eq('job', '$namespace/distributor'), utils.selector.eq('route', 'api_prom_push')], extra_selectors=[utils.selector.eq('cluster', '$cluster')]) + utils.latencyRecordingRulePanel('loki_request_duration_seconds', [utils.selector.re('job', '($namespace)/distributor')], extra_selectors=[utils.selector.re('cluster', '$cluster')]) ) ) .addRow( g.row('Ingester') .addPanel( g.panel('QPS') + - g.qpsPanel('loki_request_duration_seconds_count{cluster="$cluster", job="$namespace/ingester",route="/logproto.Pusher/Push"}') + g.qpsPanel('loki_request_duration_seconds_count{cluster=~"$cluster", job=~"($namespace)/ingester",route="/logproto.Pusher/Push"}') ) .addPanel( g.panel('Latency') + - utils.latencyRecordingRulePanel('loki_request_duration_seconds', [utils.selector.eq('job', '$namespace/ingester'), utils.selector.eq('route', '/logproto.Pusher/Push')], extra_selectors=[utils.selector.eq('cluster', '$cluster')]) + utils.latencyRecordingRulePanel('loki_request_duration_seconds', [utils.selector.re('job', '($namespace)/ingester'), utils.selector.eq('route', '/logproto.Pusher/Push')], extra_selectors=[utils.selector.re('cluster', '$cluster')]) ) ), 'loki-reads.json': - g.dashboard('loki / Reads') + g.dashboard('Loki / Reads') .addTemplate('cluster', 'kube_pod_container_info{image=~".*loki.*"}', 'cluster') .addTemplate('namespace', 'kube_pod_container_info{image=~".*loki.*"}', 'namespace') .addRow(