init
This commit is contained in:
commit
ba9def34c6
21
LICENSE
Normal file
21
LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2024 CF
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
63
README.md
Normal file
63
README.md
Normal file
|
@ -0,0 +1,63 @@
|
|||
# Notes
|
||||
|
||||
**CURRENTY NOT WORKING**
|
||||
|
||||
`git clone https://git.ittavern.com/CaffeineFueled/podman-grafana-loki-elastic.git`
|
||||
|
||||
`cd podman-grafana-loki-elastic`
|
||||
|
||||
`podman kube play grafana-stack.yaml`
|
||||
|
||||
Taking it down
|
||||
`podman kube down grafana-stack.yaml`
|
||||
|
||||
> Note: not ready for production!
|
||||
|
||||
|
||||
# Configuration
|
||||
## Endpoint
|
||||
|
||||
**Grafana**
|
||||
|
||||
`localhost:3000` # web interface
|
||||
|
||||
**Loki**
|
||||
|
||||
`localhost:3100` # default port for client communication
|
||||
|
||||
**Elastic**
|
||||
|
||||
`localhost:9200` # default HTTP port for client communication + REST API
|
||||
|
||||
`localhost:9300` # default transport port for node-to-node communication
|
||||
|
||||
## Auth
|
||||
|
||||
Open Grafana, default creds are `admin`/`admin`.
|
||||
|
||||
## Data Source
|
||||
Add Loki as data source `localhost:3100` to display them in grafana
|
||||
|
||||
# Changelog
|
||||
|
||||
from initial project
|
||||
|
||||
- Removed Tempo/Mimir
|
||||
- Loki Config `loki-local-config.yaml`
|
||||
- `store: boltdb-shipper` > `store: tsdb`
|
||||
- `schema: v11` > `schema: v13`
|
||||
|
||||
# Links
|
||||
|
||||
[Initial Article](https://grafana.com/blog/2022/09/08/how-to-deploy-the-grafana-stack-using-podman/)
|
||||
|
||||
[Initial Repo](https://github.com/CastawayEGR/grafana-stack-podman)
|
||||
|
||||
[Elastic Default Configruation Files](https://github.com/elastic/elasticsearch/tree/main/distribution/src/config)
|
||||
|
||||
# TODO
|
||||
|
||||
- [ ] Authentication for Loki
|
||||
- [ ] Authentication for Elastic
|
||||
- [ ] Docs for '[production settings](https://www.elastic.co/guide/en/elasticsearch/reference/7.5/system-config.html)' in Elastic
|
||||
- [ ] what ports are really needed?
|
1
elastic/.gitignore
vendored
Normal file
1
elastic/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
elasticsearch.keystore
|
4
elastic/data/.gitignore
vendored
Normal file
4
elastic/data/.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
*
|
||||
*/
|
||||
!.gitignore
|
||||
!.gitkeep
|
0
elastic/data/.gitkeep
Normal file
0
elastic/data/.gitkeep
Normal file
45
elastic/elasticsearch.yml
Normal file
45
elastic/elasticsearch.yml
Normal file
|
@ -0,0 +1,45 @@
|
|||
# Do not use this configuration in production.
|
||||
# It is for demonstration purposes only.
|
||||
|
||||
path.data: /var/lib/elasticsearch
|
||||
path.logs: /var/log/elasticsearch
|
||||
|
||||
# PATH CONFIG
|
||||
# https://www.elastic.co/guide/en/elasticsearch/reference/7.5/path-settings.html
|
||||
|
||||
#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
|
||||
#
|
||||
# The following settings, TLS certificates, and keys have been automatically
|
||||
# generated to configure Elasticsearch security features on 23-10-2024 21:52:59
|
||||
#
|
||||
# --------------------------------------------------------------------------------
|
||||
|
||||
# Enable security features
|
||||
xpack.security.enabled: false
|
||||
|
||||
xpack.security.enrollment.enabled: false
|
||||
|
||||
# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
|
||||
xpack.security.http.ssl:
|
||||
enabled: false
|
||||
#keystore.path: certs/http.p12
|
||||
|
||||
# Enable encryption and mutual authentication between cluster nodes
|
||||
xpack.security.transport.ssl:
|
||||
enabled: false
|
||||
#verification_mode: certificate
|
||||
#keystore.path: certs/transport.p12
|
||||
#truststore.path: certs/transport.p12
|
||||
# Create a new cluster with the current node only
|
||||
# Additional nodes can still join the cluster later
|
||||
cluster.initial_master_nodes: ["grafana-stack-pod"]
|
||||
|
||||
# Allow HTTP API connections from anywhere
|
||||
# Connections are encrypted and require user authentication
|
||||
http.host: 0.0.0.0
|
||||
|
||||
# Allow other nodes to join the cluster from anywhere
|
||||
# Connections are encrypted and mutually authenticated
|
||||
#transport.host: 0.0.0.0
|
||||
|
||||
#----------------------- END SECURITY AUTO CONFIGURATION -------------------------
|
87
elastic/jvm.options
Normal file
87
elastic/jvm.options
Normal file
|
@ -0,0 +1,87 @@
|
|||
################################################################
|
||||
##
|
||||
## JVM configuration
|
||||
##
|
||||
################################################################
|
||||
##
|
||||
## WARNING: DO NOT EDIT THIS FILE. If you want to override the
|
||||
## JVM options in this file, or set any additional options, you
|
||||
## should create one or more files in the jvm.options.d
|
||||
## directory containing your adjustments.
|
||||
##
|
||||
## See https://www.elastic.co/guide/en/elasticsearch/reference/@project.minor.version@/jvm-options.html
|
||||
## for more information.
|
||||
##
|
||||
################################################################
|
||||
|
||||
|
||||
|
||||
################################################################
|
||||
## IMPORTANT: JVM heap size
|
||||
################################################################
|
||||
##
|
||||
## The heap size is automatically configured by Elasticsearch
|
||||
## based on the available memory in your system and the roles
|
||||
## each node is configured to fulfill. If specifying heap is
|
||||
## required, it should be done through a file in jvm.options.d,
|
||||
## which should be named with .options suffix, and the min and
|
||||
## max should be set to the same value. For example, to set the
|
||||
## heap to 4 GB, create a new file in the jvm.options.d
|
||||
## directory containing these lines:
|
||||
##
|
||||
## -Xms4g
|
||||
## -Xmx4g
|
||||
##
|
||||
## See https://www.elastic.co/guide/en/elasticsearch/reference/@project.minor.version@/heap-size.html
|
||||
## for more information
|
||||
##
|
||||
################################################################
|
||||
|
||||
|
||||
################################################################
|
||||
## Expert settings
|
||||
################################################################
|
||||
##
|
||||
## All settings below here are considered expert settings. Do
|
||||
## not adjust them unless you understand what you are doing. Do
|
||||
## not edit them in this file; instead, create a new file in the
|
||||
## jvm.options.d directory containing your adjustments.
|
||||
##
|
||||
################################################################
|
||||
|
||||
-XX:+UseG1GC
|
||||
|
||||
## JVM temporary directory
|
||||
-Djava.io.tmpdir=${ES_TMPDIR}
|
||||
|
||||
# Leverages accelerated vector hardware instructions; removing this may
|
||||
# result in less optimal vector performance
|
||||
20-:--add-modules=jdk.incubator.vector
|
||||
|
||||
# Required to workaround performance issue in JDK 23, https://github.com/elastic/elasticsearch/issues/113030
|
||||
23:-XX:CompileCommand=dontinline,java/lang/invoke/MethodHandle.setAsTypeCache
|
||||
23:-XX:CompileCommand=dontinline,java/lang/invoke/MethodHandle.asTypeUncached
|
||||
|
||||
# Lucene 10: apply MADV_NORMAL advice to enable more aggressive readahead
|
||||
-Dorg.apache.lucene.store.defaultReadAdvice=normal
|
||||
|
||||
## heap dumps
|
||||
|
||||
# generate a heap dump when an allocation from the Java heap fails; heap dumps
|
||||
# are created in the working directory of the JVM unless an alternative path is
|
||||
# specified
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
|
||||
# exit right after heap dump on out of memory error
|
||||
-XX:+ExitOnOutOfMemoryError
|
||||
|
||||
# specify an alternative path for heap dumps; ensure the directory exists and
|
||||
# has sufficient space
|
||||
#@heap.dump.path@
|
||||
|
||||
# specify an alternative path for JVM fatal error logs
|
||||
#@error.file@
|
||||
|
||||
## GC logging
|
||||
-Xlog:gc*,gc+age=trace,safepoint:file=@loggc@:utctime,level,pid,tags:filecount=32,filesize=64m
|
||||
|
132
elastic/log4j2.properties
Normal file
132
elastic/log4j2.properties
Normal file
|
@ -0,0 +1,132 @@
|
|||
status = error
|
||||
|
||||
appender.console.type = Console
|
||||
appender.console.name = console
|
||||
appender.console.layout.type = PatternLayout
|
||||
appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] [%node_name]%marker %m%consoleException%n
|
||||
|
||||
######## Server JSON ############################
|
||||
appender.rolling.type = RollingFile
|
||||
appender.rolling.name = rolling
|
||||
appender.rolling.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}_server.json
|
||||
appender.rolling.layout.type = ECSJsonLayout
|
||||
appender.rolling.layout.dataset = elasticsearch.server
|
||||
|
||||
appender.rolling.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-%i.json.gz
|
||||
appender.rolling.policies.type = Policies
|
||||
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
|
||||
appender.rolling.policies.time.interval = 1
|
||||
appender.rolling.policies.time.modulate = true
|
||||
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
|
||||
appender.rolling.policies.size.size = 128MB
|
||||
appender.rolling.strategy.type = DefaultRolloverStrategy
|
||||
appender.rolling.strategy.fileIndex = nomax
|
||||
appender.rolling.strategy.action.type = Delete
|
||||
appender.rolling.strategy.action.basepath = ${sys:es.logs.base_path}
|
||||
appender.rolling.strategy.action.condition.type = IfFileName
|
||||
appender.rolling.strategy.action.condition.glob = ${sys:es.logs.cluster_name}-*
|
||||
appender.rolling.strategy.action.condition.nested_condition.type = IfAccumulatedFileSize
|
||||
appender.rolling.strategy.action.condition.nested_condition.exceeds = 2GB
|
||||
################################################
|
||||
######## Server - old style pattern ###########
|
||||
appender.rolling_old.type = RollingFile
|
||||
appender.rolling_old.name = rolling_old
|
||||
appender.rolling_old.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}.log
|
||||
appender.rolling_old.layout.type = PatternLayout
|
||||
appender.rolling_old.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] [%node_name]%marker %m%n
|
||||
|
||||
appender.rolling_old.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-%i.log.gz
|
||||
appender.rolling_old.policies.type = Policies
|
||||
appender.rolling_old.policies.time.type = TimeBasedTriggeringPolicy
|
||||
appender.rolling_old.policies.time.interval = 1
|
||||
appender.rolling_old.policies.time.modulate = true
|
||||
appender.rolling_old.policies.size.type = SizeBasedTriggeringPolicy
|
||||
appender.rolling_old.policies.size.size = 128MB
|
||||
appender.rolling_old.strategy.type = DefaultRolloverStrategy
|
||||
appender.rolling_old.strategy.fileIndex = nomax
|
||||
appender.rolling_old.strategy.action.type = Delete
|
||||
appender.rolling_old.strategy.action.basepath = ${sys:es.logs.base_path}
|
||||
appender.rolling_old.strategy.action.condition.type = IfFileName
|
||||
appender.rolling_old.strategy.action.condition.glob = ${sys:es.logs.cluster_name}-*
|
||||
appender.rolling_old.strategy.action.condition.nested_condition.type = IfAccumulatedFileSize
|
||||
appender.rolling_old.strategy.action.condition.nested_condition.exceeds = 2GB
|
||||
################################################
|
||||
|
||||
rootLogger.level = info
|
||||
rootLogger.appenderRef.console.ref = console
|
||||
rootLogger.appenderRef.rolling.ref = rolling
|
||||
rootLogger.appenderRef.rolling_old.ref = rolling_old
|
||||
|
||||
######## Deprecation JSON #######################
|
||||
appender.deprecation_rolling.type = RollingFile
|
||||
appender.deprecation_rolling.name = deprecation_rolling
|
||||
appender.deprecation_rolling.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}_deprecation.json
|
||||
appender.deprecation_rolling.layout.type = ECSJsonLayout
|
||||
# Intentionally follows a different pattern to above
|
||||
appender.deprecation_rolling.layout.dataset = deprecation.elasticsearch
|
||||
appender.deprecation_rolling.filter.rate_limit.type = RateLimitingFilter
|
||||
|
||||
appender.deprecation_rolling.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}_deprecation-%i.json.gz
|
||||
appender.deprecation_rolling.policies.type = Policies
|
||||
appender.deprecation_rolling.policies.size.type = SizeBasedTriggeringPolicy
|
||||
appender.deprecation_rolling.policies.size.size = 1GB
|
||||
appender.deprecation_rolling.strategy.type = DefaultRolloverStrategy
|
||||
appender.deprecation_rolling.strategy.max = 4
|
||||
|
||||
appender.header_warning.type = HeaderWarningAppender
|
||||
appender.header_warning.name = header_warning
|
||||
#################################################
|
||||
|
||||
logger.deprecation.name = org.elasticsearch.deprecation
|
||||
logger.deprecation.level = WARN
|
||||
logger.deprecation.appenderRef.deprecation_rolling.ref = deprecation_rolling
|
||||
logger.deprecation.appenderRef.header_warning.ref = header_warning
|
||||
logger.deprecation.additivity = false
|
||||
|
||||
######## Search slowlog JSON ####################
|
||||
appender.index_search_slowlog_rolling.type = RollingFile
|
||||
appender.index_search_slowlog_rolling.name = index_search_slowlog_rolling
|
||||
appender.index_search_slowlog_rolling.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs\
|
||||
.cluster_name}_index_search_slowlog.json
|
||||
appender.index_search_slowlog_rolling.layout.type = ECSJsonLayout
|
||||
appender.index_search_slowlog_rolling.layout.dataset = elasticsearch.index_search_slowlog
|
||||
|
||||
appender.index_search_slowlog_rolling.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs\
|
||||
.cluster_name}_index_search_slowlog-%i.json.gz
|
||||
appender.index_search_slowlog_rolling.policies.type = Policies
|
||||
appender.index_search_slowlog_rolling.policies.size.type = SizeBasedTriggeringPolicy
|
||||
appender.index_search_slowlog_rolling.policies.size.size = 1GB
|
||||
appender.index_search_slowlog_rolling.strategy.type = DefaultRolloverStrategy
|
||||
appender.index_search_slowlog_rolling.strategy.max = 4
|
||||
#################################################
|
||||
|
||||
#################################################
|
||||
logger.index_search_slowlog_rolling.name = index.search.slowlog
|
||||
logger.index_search_slowlog_rolling.level = trace
|
||||
logger.index_search_slowlog_rolling.appenderRef.index_search_slowlog_rolling.ref = index_search_slowlog_rolling
|
||||
logger.index_search_slowlog_rolling.additivity = false
|
||||
|
||||
######## Indexing slowlog JSON ##################
|
||||
appender.index_indexing_slowlog_rolling.type = RollingFile
|
||||
appender.index_indexing_slowlog_rolling.name = index_indexing_slowlog_rolling
|
||||
appender.index_indexing_slowlog_rolling.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}\
|
||||
_index_indexing_slowlog.json
|
||||
appender.index_indexing_slowlog_rolling.layout.type = ECSJsonLayout
|
||||
appender.index_indexing_slowlog_rolling.layout.dataset = elasticsearch.index_indexing_slowlog
|
||||
|
||||
|
||||
appender.index_indexing_slowlog_rolling.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}\
|
||||
_index_indexing_slowlog-%i.json.gz
|
||||
appender.index_indexing_slowlog_rolling.policies.type = Policies
|
||||
appender.index_indexing_slowlog_rolling.policies.size.type = SizeBasedTriggeringPolicy
|
||||
appender.index_indexing_slowlog_rolling.policies.size.size = 1GB
|
||||
appender.index_indexing_slowlog_rolling.strategy.type = DefaultRolloverStrategy
|
||||
appender.index_indexing_slowlog_rolling.strategy.max = 4
|
||||
#################################################
|
||||
|
||||
|
||||
logger.index_indexing_slowlog.name = index.indexing.slowlog.index
|
||||
logger.index_indexing_slowlog.level = trace
|
||||
logger.index_indexing_slowlog.appenderRef.index_indexing_slowlog_rolling.ref = index_indexing_slowlog_rolling
|
||||
logger.index_indexing_slowlog.additivity = false
|
||||
|
95
grafana-stack.yaml
Normal file
95
grafana-stack.yaml
Normal file
|
@ -0,0 +1,95 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: grafana-stack
|
||||
labels:
|
||||
app: grafana-stack
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: grafana-stack
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: grafana-stack
|
||||
spec:
|
||||
containers:
|
||||
- name: grafana
|
||||
image: docker.io/grafana/grafana:latest
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
hostPort: 3000
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /etc/grafana/grafana.ini:U
|
||||
name: grafana-config
|
||||
- mountPath: /var/lib/grafana:U
|
||||
name: grafana
|
||||
- name: loki
|
||||
image: docker.io/grafana/loki:latest
|
||||
args:
|
||||
- --config.file=/mnt/config/loki-local-config.yaml
|
||||
securityContext:
|
||||
runAsUser: 1000
|
||||
ports:
|
||||
- containerPort: 3100
|
||||
hostPort: 3100
|
||||
protocol: TCP
|
||||
- containerPort: 9096
|
||||
hostPort: 9096
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /tmp/loki:U
|
||||
name: loki
|
||||
- mountPath: /mnt/config/loki-local-config.yaml:U
|
||||
name: loki-config
|
||||
- name: elastic
|
||||
image: docker.elastic.co/elasticsearch/elasticsearch:8.15.3
|
||||
#args:
|
||||
#- --config.file=/usr/share/elasticsearch/config/elasticsearch.yaml
|
||||
securityContext:
|
||||
runAsUser: 1000
|
||||
env:
|
||||
- name: ELASTIC_PASSWORD
|
||||
value: "hehe"
|
||||
ports:
|
||||
- containerPort: 9200
|
||||
hostPort: 9200
|
||||
protocol: TCP
|
||||
- containerPort: 9300
|
||||
hostPort: 9300
|
||||
protocol: TCP
|
||||
- containerPort: 9096
|
||||
hostPort: 9096
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /var:U
|
||||
name: elastic
|
||||
- mountPath: /usr/share/elasticsearch/config:U
|
||||
name: elastic-config
|
||||
volumes:
|
||||
- hostPath:
|
||||
path: ./grafana/data
|
||||
type: Directory
|
||||
name: grafana
|
||||
- hostPath:
|
||||
path: ./grafana/grafana.ini
|
||||
type: File
|
||||
name: grafana-config
|
||||
- hostPath:
|
||||
path: ./loki/data
|
||||
type: Directory
|
||||
name: loki
|
||||
- hostPath:
|
||||
path: ./loki/loki-local-config.yaml
|
||||
type: File
|
||||
name: loki-config
|
||||
- hostPath:
|
||||
path: ./elastic/data
|
||||
type: Directory
|
||||
name: elastic
|
||||
- hostPath:
|
||||
path: ./elastic/
|
||||
type: Directory
|
||||
name: elastic-config
|
4
grafana/data/.gitignore
vendored
Normal file
4
grafana/data/.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
*
|
||||
*/
|
||||
!.gitignore
|
||||
!.gitkeep
|
0
grafana/data/.gitkeep
Normal file
0
grafana/data/.gitkeep
Normal file
1201
grafana/grafana.ini
Normal file
1201
grafana/grafana.ini
Normal file
File diff suppressed because it is too large
Load diff
4
loki/data/.gitignore
vendored
Normal file
4
loki/data/.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
*
|
||||
*/
|
||||
!.gitignore
|
||||
!.gitkeep
|
0
loki/data/.gitkeep
Normal file
0
loki/data/.gitkeep
Normal file
50
loki/loki-local-config.yaml
Normal file
50
loki/loki-local-config.yaml
Normal file
|
@ -0,0 +1,50 @@
|
|||
# Do not use this configuration in production.
|
||||
# It is for demonstration purposes only.
|
||||
auth_enabled: false
|
||||
|
||||
server:
|
||||
http_listen_port: 3100
|
||||
grpc_listen_port: 9096
|
||||
|
||||
common:
|
||||
path_prefix: /tmp/loki
|
||||
storage:
|
||||
filesystem:
|
||||
chunks_directory: /tmp/loki/chunks
|
||||
rules_directory: /tmp/loki/rules
|
||||
replication_factor: 1
|
||||
ring:
|
||||
instance_addr: 127.0.0.1
|
||||
kvstore:
|
||||
store: inmemory
|
||||
|
||||
schema_config:
|
||||
configs:
|
||||
- from: 2024-10-20
|
||||
store: tsdb
|
||||
object_store: filesystem
|
||||
schema: v13
|
||||
index:
|
||||
prefix: index_
|
||||
period: 24h
|
||||
|
||||
ruler:
|
||||
enable_api: true
|
||||
storage:
|
||||
type: local
|
||||
local:
|
||||
directory: /tmp/loki/rules
|
||||
rule_path: /tmp/loki/rules-temp
|
||||
|
||||
# By default, Loki will send anonymous, but uniquely-identifiable usage and configuration
|
||||
# analytics to Grafana Labs. These statistics are sent to https://stats.grafana.org/
|
||||
#
|
||||
# Statistics help us better understand how Loki is used, and they show us performance
|
||||
# levels for most users. This helps us prioritize features and documentation.
|
||||
# For more information on what's sent, look at
|
||||
# https://github.com/grafana/loki/blob/main/pkg/usagestats/stats.go
|
||||
# Refer to the buildReport method to see what goes into a report.
|
||||
#
|
||||
# If you would like to disable reporting, uncomment the following lines:
|
||||
#analytics:
|
||||
# reporting_enabled: false
|
Loading…
Reference in a new issue