Commit cc61d9c5 by Torkel Ödegaard

Merge branch 'master' into move-error-boundry

parents 0c72fb3b 4f3b9c6c
...@@ -7,6 +7,13 @@ services: ...@@ -7,6 +7,13 @@ services:
- "80:80" - "80:80"
volumes: volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro - /var/run/docker.sock:/tmp/docker.sock:ro
depends_on:
db:
condition: service_healthy
logging:
driver: "fluentd"
options:
tag: nginx
db: db:
image: mysql:5.6 image: mysql:5.6
...@@ -66,6 +73,8 @@ services: ...@@ -66,6 +73,8 @@ services:
# - GF_DATABASE_SSL_MODE=disable # - GF_DATABASE_SSL_MODE=disable
# - GF_SESSION_PROVIDER=postgres # - GF_SESSION_PROVIDER=postgres
# - GF_SESSION_PROVIDER_CONFIG=user=grafana password=password host=db port=5432 dbname=grafana sslmode=disable # - GF_SESSION_PROVIDER_CONFIG=user=grafana password=password host=db port=5432 dbname=grafana sslmode=disable
- GF_SERVER_ROUTER_LOGGING=true
- GF_LOG_CONSOLE_FORMAT=json
- GF_LOG_FILTERS=alerting.notifier:debug,alerting.notifier.slack:debug,auth:debug - GF_LOG_FILTERS=alerting.notifier:debug,alerting.notifier.slack:debug,auth:debug
- GF_AUTH_TOKEN_ROTATION_INTERVAL_MINUTES=2 - GF_AUTH_TOKEN_ROTATION_INTERVAL_MINUTES=2
ports: ports:
...@@ -73,6 +82,10 @@ services: ...@@ -73,6 +82,10 @@ services:
depends_on: depends_on:
db: db:
condition: service_healthy condition: service_healthy
logging:
driver: "fluentd"
options:
tag: grafana
prometheus: prometheus:
image: prom/prometheus:v2.4.2 image: prom/prometheus:v2.4.2
...@@ -82,3 +95,21 @@ services: ...@@ -82,3 +95,21 @@ services:
- VIRTUAL_HOST=prometheus.loc - VIRTUAL_HOST=prometheus.loc
ports: ports:
- 9090 - 9090
loki:
image: grafana/loki:master
environment:
- VIRTUAL_HOST=loki.loc
ports:
- 3100
command: -config.file=/etc/loki/local-config.yaml
fluentd:
image: grafana/fluent-plugin-loki:master
volumes:
- ./fluentd/fluentd.conf:/fluentd/etc/fluentd.conf
links:
- loki
ports:
- "24224:24224"
- "24224:24224/udp"
<source>
@type forward
port 24224
bind 0.0.0.0
</source>
<filter grafana>
@type parser
<parse>
@type json
json_parser json
</parse>
replace_invalid_sequence true
emit_invalid_record_to_error false
key_name log
reserve_data true
remove_key_name_field true
</filter>
<filter nginx>
@type parser
format /^.*m(?<host>[^ ]*) (?<remote>[^ ]*) \- \- \[(?<time>[^\]]*)\] \"(?<method>\S+)(?: +(?<path>[^\"]*) +\S*)?\" (?<code>[^ ]*) (?<size>[^ ]*)(?: \"(?<referer>[^\"]*)\" \"(?<agent>[^\"]*)\")?$/
time_format %d/%b/%Y:%H:%M:%S %z
key_name log
reserve_data true
remove_key_name_field true
</filter>
<filter **>
@type record_transformer
remove_keys "source,t"
</filter>
<match grafana>
@type copy
<store>
@type stdout
output_type json
</store>
<store>
@type loki
url "http://loki:3100"
extra_labels {"app":"grafana"}
label_keys "container_name,container_id,logger"
flush_interval 10s
flush_at_shutdown true
buffer_chunk_limit 1m
</store>
</match>
<filter nginx>
@type record_transformer
<record>
lvl "info"
</record>
</filter>
<match nginx>
@type copy
<store>
@type stdout
output_type json
</store>
<store>
@type loki
url "http://loki:3100"
extra_labels {"app":"nginx"}
label_keys "container_name,container_id"
flush_interval 10s
flush_at_shutdown true
buffer_chunk_limit 1m
</store>
</match>
\ No newline at end of file
...@@ -8,4 +8,9 @@ datasources: ...@@ -8,4 +8,9 @@ datasources:
jsonData: jsonData:
timeInterval: 10s timeInterval: 10s
queryTimeout: 30s queryTimeout: 30s
httpMethod: POST httpMethod: POST
\ No newline at end of file
- name: Loki
type: loki
access: proxy
url: http://loki:3100
...@@ -36,4 +36,12 @@ scrape_configs: ...@@ -36,4 +36,12 @@ scrape_configs:
- 'mysqld-exporter' - 'mysqld-exporter'
type: 'A' type: 'A'
port: 9104 port: 9104
refresh_interval: 10s
- job_name: 'loki'
dns_sd_configs:
- names:
- 'loki'
type: 'A'
port: 3100
refresh_interval: 10s refresh_interval: 10s
\ No newline at end of file
...@@ -211,6 +211,8 @@ allowed_organizations = ...@@ -211,6 +211,8 @@ allowed_organizations =
## Set up OAuth2 with non-compliant providers ## Set up OAuth2 with non-compliant providers
> Only available in Grafana v6.0 and above.
Some OAuth2 providers might not support `client_id` and `client_secret` passed via Basic Authentication HTTP header, which Some OAuth2 providers might not support `client_id` and `client_secret` passed via Basic Authentication HTTP header, which
results in `invalid_client` error. To allow Grafana to authenticate via these type of providers, the client identifiers must be results in `invalid_client` error. To allow Grafana to authenticate via these type of providers, the client identifiers must be
send via POST body, which can be enabled via the following settings: send via POST body, which can be enabled via the following settings:
......
...@@ -140,8 +140,8 @@ export class PanelChrome extends PureComponent<Props, State> { ...@@ -140,8 +140,8 @@ export class PanelChrome extends PureComponent<Props, State> {
panelData={panelData} panelData={panelData}
timeRange={timeRange} timeRange={timeRange}
options={panel.getOptions(plugin.exports.PanelDefaults)} options={panel.getOptions(plugin.exports.PanelDefaults)}
width={width - 2 * variables.panelHorizontalPadding} width={width - 2 * variables.panelhorizontalpadding}
height={height - PANEL_HEADER_HEIGHT - variables.panelVerticalPadding} height={height - PANEL_HEADER_HEIGHT - variables.panelverticalpadding}
renderCounter={renderCounter} renderCounter={renderCounter}
onInterpolate={this.onInterpolate} onInterpolate={this.onInterpolate}
/> />
......
export interface GrafanaVariables { export interface GrafanaVariables {
panelHorizontalPadding: number; panelhorizontalpadding: number;
panelVerticalPadding: number; panelverticalpadding: number;
} }
declare const variables: GrafanaVariables; declare const variables: GrafanaVariables;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment