apiVersion: dashboard.grafana.app/v2beta1
kind: Dashboard
metadata:
  name: f32c8ffe-d1be-4230-94f3-cc935a82e046
  generation: 16
  creationTimestamp: '2025-12-19T11:56:36Z'
  labels: {}
  annotations: {}
spec:
  annotations:
    - kind: AnnotationQuery
      spec:
        builtIn: true
        enable: true
        hide: true
        iconColor: rgba(0, 211, 255, 1)
        name: Annotations & Alerts
        query:
          group: grafana
          kind: DataQuery
          spec:
            limit: 100
            matchAny: false
            tags: []
            type: dashboard
          version: v0
  cursorSync: Crosshair
  editable: true
  elements:
    panel-14:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(status) (count_over_time({filename="$filename"}|
                        json [$__interval]))
                      legendFormat: 'status: {{status}}'
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations:
              - kind: seriesToRows
                spec:
                  id: seriesToRows
                  options: {}
              - kind: groupBy
                spec:
                  id: groupBy
                  options:
                    fields:
                      Metric:
                        aggregations: []
                        operation: groupby
                      Value:
                        aggregations:
                          - sum
                        operation: aggregate
        description: ''
        id: 14
        links: []
        title: Status
        vizConfig:
          group: piechart
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: palette-classic
                custom:
                  hideFrom:
                    legend: false
                    tooltip: false
                    viz: false
                mappings:
                  - options:
                      'status: 101':
                        index: 0
                        text: 'status: 101 Switching Protocols'
                      'status: 102':
                        index: 1
                        text: 'status: 102 Processing'
                      'status: 103':
                        index: 2
                        text: 'status: 103 Early Hints'
                      'status: 200':
                        index: 3
                        text: 'status: 200 OK'
                      'status: 201':
                        index: 4
                        text: 'status: 201 Created'
                      'status: 202':
                        index: 5
                        text: 'status: 202 Accepted'
                      'status: 203':
                        index: 6
                        text: 'status: 203 Non-Authoritative Information'
                      'status: 204':
                        index: 7
                        text: 'status: 204 No Content'
                      'status: 205':
                        index: 8
                        text: 'status: 205 Reset Content'
                      'status: 206':
                        index: 9
                        text: 'status: 206 Partial Content'
                      'status: 207':
                        index: 10
                        text: 'status: 207 Multi-Status'
                      'status: 208':
                        index: 11
                        text: 'status: 208 Already Reported'
                      'status: 226':
                        index: 12
                        text: 'status: 226 IM Used'
                      'status: 300':
                        index: 13
                        text: 'status: 300 Multiple Choices'
                      'status: 301':
                        index: 14
                        text: 'status: 301 Moved Permanently'
                      'status: 302':
                        index: 15
                        text: 'status: 302 Found'
                      'status: 303':
                        index: 16
                        text: 'status: 303 See Other'
                      'status: 304':
                        index: 17
                        text: 'status: 304 Not Modified'
                      'status: 305':
                        index: 18
                        text: 'status: 305 Use Proxy'
                      'status: 306':
                        index: 19
                        text: 'status: 306 unused'
                      'status: 307':
                        index: 20
                        text: 'status: 307 Temporary Redirect'
                      'status: 308':
                        index: 21
                        text: 'status: 308 Permanent Redirect'
                      'status: 401':
                        index: 22
                        text: 'status: 401 Unauthorized'
                      'status: 402':
                        index: 23
                        text: 'status: 402 Payment Required'
                      'status: 403':
                        index: 24
                        text: 'status: 403 Forbidden'
                      'status: 404':
                        index: 25
                        text: 'status: 404 Not Found'
                      'status: 405':
                        index: 26
                        text: 'status: 405 Method Not Allowed'
                      'status: 406':
                        index: 27
                        text: 'status: 406 Not Acceptable'
                      'status: 407':
                        index: 28
                        text: 'status: 407 Proxy Authentication Required'
                      'status: 408':
                        index: 29
                        text: 'status: 408 Request Timeout'
                      'status: 409':
                        index: 30
                        text: 'status: 409 Conflict'
                      'status: 410':
                        index: 31
                        text: 'status: 410 Gone'
                      'status: 411':
                        index: 32
                        text: 'status: 411 Length Required'
                      'status: 412':
                        index: 33
                        text: 'status: 412 Precondition Failed'
                      'status: 413':
                        index: 34
                        text: 'status: 413 Payload Too Large'
                      'status: 414':
                        index: 35
                        text: 'status: 414 URI Too Long'
                      'status: 415':
                        index: 36
                        text: 'status: 415 Unsupported Media Type'
                      'status: 416':
                        index: 37
                        text: 'status: 416 Range Not Satisfiable'
                      'status: 417':
                        index: 38
                        text: 'status: 417 Expectation Failed'
                      'status: 418':
                        index: 39
                        text: 'status: 418 I''m a teapot'
                      'status: 421':
                        index: 40
                        text: 'status: 421 Misdirected Request'
                      'status: 422':
                        index: 41
                        text: 'status: 422 Unprocessable Content'
                      'status: 423':
                        index: 42
                        text: 'status: 423 Locked'
                      'status: 424':
                        index: 43
                        text: 'status: 424 Failed Dependency'
                      'status: 425':
                        index: 44
                        text: 'status: 425 Too Early'
                      'status: 426':
                        index: 45
                        text: 'status: 426 Upgrade Required'
                      'status: 428':
                        index: 46
                        text: 'status: 428 Precondition Required'
                      'status: 429':
                        index: 47
                        text: 'status: 429 Too Many Requests'
                      'status: 431':
                        index: 48
                        text: 'status: 431 Request Header Fields Too Large'
                      'status: 451':
                        index: 49
                        text: 'status: 451 Unavailable For Legal Reasons'
                      'status: 499':
                        index: 61
                        text: 'status: 499 Client Closed Request'
                      'status: 500':
                        index: 50
                        text: 'status: 500 Internal Server Error'
                      'status: 501':
                        index: 51
                        text: 'status: 501 Not Implemented'
                      'status: 502':
                        index: 52
                        text: 'status: 502 Bad Gateway'
                      'status: 503':
                        index: 53
                        text: 'status: 503 Service Unavailable'
                      'status: 504':
                        index: 54
                        text: 'status: 504 Gateway Timeout'
                      'status: 505':
                        index: 55
                        text: 'status: 505 HTTP Version Not Supported'
                      'status: 506':
                        index: 56
                        text: 'status: 506 Variant Also Negotiates'
                      'status: 507':
                        index: 57
                        text: 'status: 507 Insufficient Storage'
                      'status: 508':
                        index: 58
                        text: 'status: 508 Loop Detected'
                      'status: 510':
                        index: 59
                        text: 'status: 510 Not Extended'
                      'status: 511':
                        index: 60
                        text: 'status: 511 Network Authentication Required'
                    type: value
              overrides:
                - matcher:
                    id: byName
                    options: Value (sum)
                  properties:
                    - id: color
                      value:
                        mode: continuous-BlPu
                        seriesBy: last
                - __systemRef: hideSeriesFrom
                  matcher:
                    id: byNames
                    options:
                      mode: exclude
                      names:
                        - Value (sum)
                        - 'status: 666'
                      prefix: 'All except:'
                      readOnly: true
                  properties:
                    - id: custom.hideFrom
                      value:
                        legend: false
                        tooltip: true
                        viz: true
            options:
              displayLabels:
                - percent
              legend:
                displayMode: list
                placement: right
                showLegend: true
                values: []
              pieType: pie
              reduceOptions:
                calcs:
                  - lastNotNull
                fields: ''
                values: true
              sort: desc
              tooltip:
                hideZeros: false
                mode: single
                sort: none
          version: 12.3.1
    panel-25:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        {filename="$filename"} | json | line_format "Request for
                        {{.request_uri}} with HTTP status {{.status}}"
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations: []
        description: ''
        id: 25
        links: []
        title: Raw data
        vizConfig:
          group: table
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: thresholds
                custom:
                  align: auto
                  cellOptions:
                    type: auto
                  inspect: true
                thresholds:
                  mode: absolute
                  steps:
                    - color: green
                    - color: red
                      value: 80
              overrides: []
            options:
              cellHeight: sm
              footer:
                countRows: false
                fields: ''
                reducer:
                  - sum
                show: false
              showHeader: true
          version: 11.3.1
    panel-3:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        count(sum by (remote_addr)
                        (count_over_time({filename="$filename"}[$__interval])))
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 1h
            transformations: []
        description: ''
        id: 3
        links: []
        title: Visitor per Hour
        vizConfig:
          group: stat
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: thresholds
                noValue: '0'
                thresholds:
                  mode: absolute
                  steps:
                    - color: purple
                      value: 0
              overrides: []
            options:
              colorMode: background
              graphMode: area
              justifyMode: auto
              orientation: auto
              percentChangeColorMode: standard
              reduceOptions:
                calcs:
                  - mean
                fields: ''
                values: false
              showPercentChange: false
              textMode: auto
              wideLayout: true
          version: 12.3.1
    panel-32:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(remote_addr)
                        (count_over_time({filename="$filename"}| json
                        [$__interval]))
                      legendFormat: '{{remote_addr}}'
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations:
              - kind: seriesToRows
                spec:
                  id: seriesToRows
                  options: {}
              - kind: groupBy
                spec:
                  id: groupBy
                  options:
                    fields:
                      Metric:
                        aggregations: []
                        operation: groupby
                      Value:
                        aggregations:
                          - sum
                        operation: aggregate
              - kind: organize
                spec:
                  id: organize
                  options:
                    excludeByName: {}
                    indexByName: {}
                    renameByName:
                      Metric: IP address
                      Value (sum): Request(s)
        description: ''
        id: 32
        links: []
        title: Top IPs
        vizConfig:
          group: table
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: thresholds
                custom:
                  align: auto
                  cellOptions:
                    type: auto
                  footer:
                    reducers: []
                  inspect: false
                min: 0
                thresholds:
                  mode: absolute
                  steps:
                    - color: green
                      value: 0
                    - color: red
                      value: 80
              overrides:
                - matcher:
                    id: byName
                    options: Request(s)
                  properties:
                    - id: color
                      value:
                        mode: continuous-BlPu
                    - id: custom.width
                      value: 300
                    - id: custom.cellOptions
                      value:
                        mode: gradient
                        type: gauge
            options:
              cellHeight: sm
              showHeader: true
              sortBy:
                - desc: true
                  displayName: Request(s)
          version: 12.3.1
    panel-34:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(status) (count_over_time({filename="$filename"}|
                        json [$__interval]))
                      legendFormat: 'HTTP status: {{status}}'
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations:
              - kind: seriesToRows
                spec:
                  id: seriesToRows
                  options: {}
              - kind: groupBy
                spec:
                  id: groupBy
                  options:
                    fields:
                      Metric:
                        aggregations: []
                        operation: groupby
                      Value:
                        aggregations:
                          - sum
                        operation: aggregate
        description: ''
        id: 34
        links: []
        title: Request per status code
        vizConfig:
          group: stat
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  fixedColor: blue
                  mode: thresholds
                mappings:
                  - options:
                      'status: 101':
                        index: 0
                        text: 'status: 101 Switching Protocols'
                      'status: 102':
                        index: 1
                        text: 'status: 102 Processing'
                      'status: 103':
                        index: 2
                        text: 'status: 103 Early Hints'
                      'status: 200':
                        index: 3
                        text: 'status: 200 OK'
                      'status: 201':
                        index: 4
                        text: 'status: 201 Created'
                      'status: 202':
                        index: 5
                        text: 'status: 202 Accepted'
                      'status: 203':
                        index: 6
                        text: 'status: 203 Non-Authoritative Information'
                      'status: 204':
                        index: 7
                        text: 'status: 204 No Content'
                      'status: 205':
                        index: 8
                        text: 'status: 205 Reset Content'
                      'status: 206':
                        index: 9
                        text: 'status: 206 Partial Content'
                      'status: 207':
                        index: 10
                        text: 'status: 207 Multi-Status'
                      'status: 208':
                        index: 11
                        text: 'status: 208 Already Reported'
                      'status: 226':
                        index: 12
                        text: 'status: 226 IM Used'
                      'status: 300':
                        index: 13
                        text: 'status: 300 Multiple Choices'
                      'status: 301':
                        index: 14
                        text: 'status: 301 Moved Permanently'
                      'status: 302':
                        index: 15
                        text: 'status: 302 Found'
                      'status: 303':
                        index: 16
                        text: 'status: 303 See Other'
                      'status: 304':
                        index: 17
                        text: 'status: 304 Not Modified'
                      'status: 305':
                        index: 18
                        text: 'status: 305 Use Proxy'
                      'status: 306':
                        index: 19
                        text: 'status: 306 unused'
                      'status: 307':
                        index: 20
                        text: 'status: 307 Temporary Redirect'
                      'status: 308':
                        index: 21
                        text: 'status: 308 Permanent Redirect'
                      'status: 401':
                        index: 22
                        text: 'status: 401 Unauthorized'
                      'status: 402':
                        index: 23
                        text: 'status: 402 Payment Required'
                      'status: 403':
                        index: 24
                        text: 'status: 403 Forbidden'
                      'status: 404':
                        index: 25
                        text: 'status: 404 Not Found'
                      'status: 405':
                        index: 26
                        text: 'status: 405 Method Not Allowed'
                      'status: 406':
                        index: 27
                        text: 'status: 406 Not Acceptable'
                      'status: 407':
                        index: 28
                        text: 'status: 407 Proxy Authentication Required'
                      'status: 408':
                        index: 29
                        text: 'status: 408 Request Timeout'
                      'status: 409':
                        index: 30
                        text: 'status: 409 Conflict'
                      'status: 410':
                        index: 31
                        text: 'status: 410 Gone'
                      'status: 411':
                        index: 32
                        text: 'status: 411 Length Required'
                      'status: 412':
                        index: 33
                        text: 'status: 412 Precondition Failed'
                      'status: 413':
                        index: 34
                        text: 'status: 413 Payload Too Large'
                      'status: 414':
                        index: 35
                        text: 'status: 414 URI Too Long'
                      'status: 415':
                        index: 36
                        text: 'status: 415 Unsupported Media Type'
                      'status: 416':
                        index: 37
                        text: 'status: 416 Range Not Satisfiable'
                      'status: 417':
                        index: 38
                        text: 'status: 417 Expectation Failed'
                      'status: 418':
                        index: 39
                        text: 'status: 418 I''m a teapot'
                      'status: 421':
                        index: 40
                        text: 'status: 421 Misdirected Request'
                      'status: 422':
                        index: 41
                        text: 'status: 422 Unprocessable Content'
                      'status: 423':
                        index: 42
                        text: 'status: 423 Locked'
                      'status: 424':
                        index: 43
                        text: 'status: 424 Failed Dependency'
                      'status: 425':
                        index: 44
                        text: 'status: 425 Too Early'
                      'status: 426':
                        index: 45
                        text: 'status: 426 Upgrade Required'
                      'status: 428':
                        index: 46
                        text: 'status: 428 Precondition Required'
                      'status: 429':
                        index: 47
                        text: 'status: 429 Too Many Requests'
                      'status: 431':
                        index: 48
                        text: 'status: 431 Request Header Fields Too Large'
                      'status: 451':
                        index: 49
                        text: 'status: 451 Unavailable For Legal Reasons'
                      'status: 500':
                        index: 50
                        text: 'status: 500 Internal Server Error'
                      'status: 501':
                        index: 51
                        text: 'status: 501 Not Implemented'
                      'status: 502':
                        index: 52
                        text: 'status: 502 Bad Gateway'
                      'status: 503':
                        index: 53
                        text: 'status: 503 Service Unavailable'
                      'status: 504':
                        index: 54
                        text: 'status: 504 Gateway Timeout'
                      'status: 505':
                        index: 55
                        text: 'status: 505 HTTP Version Not Supported'
                      'status: 506':
                        index: 56
                        text: 'status: 506 Variant Also Negotiates'
                      'status: 507':
                        index: 57
                        text: 'status: 507 Insufficient Storage'
                      'status: 508':
                        index: 58
                        text: 'status: 508 Loop Detected'
                      'status: 510':
                        index: 59
                        text: 'status: 510 Not Extended'
                      'status: 511':
                        index: 60
                        text: 'status: 511 Network Authentication Required'
                    type: value
                noValue: '0'
                thresholds:
                  mode: absolute
                  steps:
                    - color: light-blue
                      value: 0
                unit: short
              overrides:
                - matcher:
                    id: byName
                    options: Value (sum)
                  properties:
                    - id: color
                      value:
                        fixedColor: light-blue
                        mode: fixed
                        seriesBy: last
            options:
              colorMode: background
              graphMode: area
              justifyMode: auto
              orientation: vertical
              percentChangeColorMode: standard
              reduceOptions:
                calcs: []
                fields: /^Value \(sum\)$/
                limit: 6
                values: true
              showPercentChange: false
              textMode: value_and_name
              wideLayout: true
          version: 12.3.1
    panel-35:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(server_name)
                        (count_over_time({filename="$filename"}| json
                        [$__interval]))
                      legendFormat: '{{server_name}}'
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations:
              - kind: seriesToRows
                spec:
                  id: seriesToRows
                  options: {}
              - kind: groupBy
                spec:
                  id: groupBy
                  options:
                    fields:
                      Metric:
                        aggregations: []
                        operation: groupby
                      Value:
                        aggregations:
                          - sum
                        operation: aggregate
              - kind: organize
                spec:
                  id: organize
                  options:
                    excludeByName: {}
                    indexByName: {}
                    renameByName:
                      Metric: Website
                      Value (sum): Request(s)
        description: ''
        id: 35
        links: []
        title: Top Websites
        vizConfig:
          group: table
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: thresholds
                custom:
                  align: auto
                  cellOptions:
                    type: auto
                  footer:
                    reducers: []
                  inspect: false
                min: 0
                thresholds:
                  mode: absolute
                  steps:
                    - color: green
                      value: 0
                    - color: red
                      value: 80
              overrides:
                - matcher:
                    id: byName
                    options: Request(s)
                  properties:
                    - id: color
                      value:
                        mode: continuous-BlPu
                    - id: custom.width
                      value: 300
                    - id: custom.cellOptions
                      value:
                        mode: gradient
                        type: gauge
            options:
              cellHeight: sm
              showHeader: true
              sortBy:
                - desc: true
                  displayName: Request(s)
          version: 12.3.1
    panel-36:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(request_method)
                        (count_over_time({filename="$filename"}| json
                        [$__interval]))
                      legendFormat: 'Method: {{request_method}}'
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations:
              - kind: seriesToRows
                spec:
                  id: seriesToRows
                  options: {}
              - kind: groupBy
                spec:
                  id: groupBy
                  options:
                    fields:
                      Metric:
                        aggregations: []
                        operation: groupby
                      Value:
                        aggregations:
                          - sum
                        operation: aggregate
        description: ''
        id: 36
        links: []
        title: Methods
        vizConfig:
          group: piechart
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: palette-classic
                custom:
                  hideFrom:
                    legend: false
                    tooltip: false
                    viz: false
                mappings:
                  - options:
                      'status: 101':
                        index: 0
                        text: 'status: 101 Switching Protocols'
                      'status: 102':
                        index: 1
                        text: 'status: 102 Processing'
                      'status: 103':
                        index: 2
                        text: 'status: 103 Early Hints'
                      'status: 200':
                        index: 3
                        text: 'status: 200 OK'
                      'status: 201':
                        index: 4
                        text: 'status: 201 Created'
                      'status: 202':
                        index: 5
                        text: 'status: 202 Accepted'
                      'status: 203':
                        index: 6
                        text: 'status: 203 Non-Authoritative Information'
                      'status: 204':
                        index: 7
                        text: 'status: 204 No Content'
                      'status: 205':
                        index: 8
                        text: 'status: 205 Reset Content'
                      'status: 206':
                        index: 9
                        text: 'status: 206 Partial Content'
                      'status: 207':
                        index: 10
                        text: 'status: 207 Multi-Status'
                      'status: 208':
                        index: 11
                        text: 'status: 208 Already Reported'
                      'status: 226':
                        index: 12
                        text: 'status: 226 IM Used'
                      'status: 300':
                        index: 13
                        text: 'status: 300 Multiple Choices'
                      'status: 301':
                        index: 14
                        text: 'status: 301 Moved Permanently'
                      'status: 302':
                        index: 15
                        text: 'status: 302 Found'
                      'status: 303':
                        index: 16
                        text: 'status: 303 See Other'
                      'status: 304':
                        index: 17
                        text: 'status: 304 Not Modified'
                      'status: 305':
                        index: 18
                        text: 'status: 305 Use Proxy'
                      'status: 306':
                        index: 19
                        text: 'status: 306 unused'
                      'status: 307':
                        index: 20
                        text: 'status: 307 Temporary Redirect'
                      'status: 308':
                        index: 21
                        text: 'status: 308 Permanent Redirect'
                      'status: 401':
                        index: 22
                        text: 'status: 401 Unauthorized'
                      'status: 402':
                        index: 23
                        text: 'status: 402 Payment Required'
                      'status: 403':
                        index: 24
                        text: 'status: 403 Forbidden'
                      'status: 404':
                        index: 25
                        text: 'status: 404 Not Found'
                      'status: 405':
                        index: 26
                        text: 'status: 405 Method Not Allowed'
                      'status: 406':
                        index: 27
                        text: 'status: 406 Not Acceptable'
                      'status: 407':
                        index: 28
                        text: 'status: 407 Proxy Authentication Required'
                      'status: 408':
                        index: 29
                        text: 'status: 408 Request Timeout'
                      'status: 409':
                        index: 30
                        text: 'status: 409 Conflict'
                      'status: 410':
                        index: 31
                        text: 'status: 410 Gone'
                      'status: 411':
                        index: 32
                        text: 'status: 411 Length Required'
                      'status: 412':
                        index: 33
                        text: 'status: 412 Precondition Failed'
                      'status: 413':
                        index: 34
                        text: 'status: 413 Payload Too Large'
                      'status: 414':
                        index: 35
                        text: 'status: 414 URI Too Long'
                      'status: 415':
                        index: 36
                        text: 'status: 415 Unsupported Media Type'
                      'status: 416':
                        index: 37
                        text: 'status: 416 Range Not Satisfiable'
                      'status: 417':
                        index: 38
                        text: 'status: 417 Expectation Failed'
                      'status: 418':
                        index: 39
                        text: 'status: 418 I''m a teapot'
                      'status: 421':
                        index: 40
                        text: 'status: 421 Misdirected Request'
                      'status: 422':
                        index: 41
                        text: 'status: 422 Unprocessable Content'
                      'status: 423':
                        index: 42
                        text: 'status: 423 Locked'
                      'status: 424':
                        index: 43
                        text: 'status: 424 Failed Dependency'
                      'status: 425':
                        index: 44
                        text: 'status: 425 Too Early'
                      'status: 426':
                        index: 45
                        text: 'status: 426 Upgrade Required'
                      'status: 428':
                        index: 46
                        text: 'status: 428 Precondition Required'
                      'status: 429':
                        index: 47
                        text: 'status: 429 Too Many Requests'
                      'status: 431':
                        index: 48
                        text: 'status: 431 Request Header Fields Too Large'
                      'status: 451':
                        index: 49
                        text: 'status: 451 Unavailable For Legal Reasons'
                      'status: 499':
                        index: 61
                        text: 'status: 499 Client Closed Request'
                      'status: 500':
                        index: 50
                        text: 'status: 500 Internal Server Error'
                      'status: 501':
                        index: 51
                        text: 'status: 501 Not Implemented'
                      'status: 502':
                        index: 52
                        text: 'status: 502 Bad Gateway'
                      'status: 503':
                        index: 53
                        text: 'status: 503 Service Unavailable'
                      'status: 504':
                        index: 54
                        text: 'status: 504 Gateway Timeout'
                      'status: 505':
                        index: 55
                        text: 'status: 505 HTTP Version Not Supported'
                      'status: 506':
                        index: 56
                        text: 'status: 506 Variant Also Negotiates'
                      'status: 507':
                        index: 57
                        text: 'status: 507 Insufficient Storage'
                      'status: 508':
                        index: 58
                        text: 'status: 508 Loop Detected'
                      'status: 510':
                        index: 59
                        text: 'status: 510 Not Extended'
                      'status: 511':
                        index: 60
                        text: 'status: 511 Network Authentication Required'
                    type: value
              overrides:
                - matcher:
                    id: byName
                    options: Value (sum)
                  properties:
                    - id: color
                      value:
                        mode: continuous-BlPu
                        seriesBy: last
            options:
              displayLabels:
                - percent
              legend:
                displayMode: list
                placement: right
                showLegend: true
                values: []
              pieType: pie
              reduceOptions:
                calcs:
                  - lastNotNull
                fields: ''
                values: true
              sort: desc
              tooltip:
                hideZeros: false
                mode: single
                sort: none
          version: 12.3.1
    panel-37:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum(sum_over_time({filename="$filename"} | json | unwrap
                        bytes_sent [$__interval]))
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations: []
        description: ''
        id: 37
        links: []
        title: Total Bytes Sent
        vizConfig:
          group: stat
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: thresholds
                noValue: '0'
                thresholds:
                  mode: absolute
                  steps:
                    - color: purple
                      value: 0
                unit: decbytes
              overrides: []
            options:
              colorMode: background
              graphMode: area
              justifyMode: auto
              orientation: auto
              percentChangeColorMode: standard
              reduceOptions:
                calcs:
                  - sum
                fields: ''
                values: false
              showPercentChange: false
              textMode: auto
              wideLayout: true
          version: 12.3.1
    panel-38:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(http_user_agent)
                        (count_over_time({filename="$filename"}| json
                        [$__interval]))
                      legendFormat: 'Browser: {{http_user_agent}}'
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations:
              - kind: seriesToRows
                spec:
                  id: seriesToRows
                  options: {}
              - kind: groupBy
                spec:
                  id: groupBy
                  options:
                    fields:
                      Metric:
                        aggregations: []
                        operation: groupby
                      Value:
                        aggregations:
                          - sum
                        operation: aggregate
        description: ''
        id: 38
        links: []
        title: Browsers
        vizConfig:
          group: piechart
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: palette-classic
                custom:
                  hideFrom:
                    legend: false
                    tooltip: false
                    viz: false
                mappings:
                  - options:
                      'Browser: ':
                        index: 62
                        text: 'Browser: Unknown'
                      'status: 101':
                        index: 0
                        text: 'status: 101 Switching Protocols'
                      'status: 102':
                        index: 1
                        text: 'status: 102 Processing'
                      'status: 103':
                        index: 2
                        text: 'status: 103 Early Hints'
                      'status: 200':
                        index: 3
                        text: 'status: 200 OK'
                      'status: 201':
                        index: 4
                        text: 'status: 201 Created'
                      'status: 202':
                        index: 5
                        text: 'status: 202 Accepted'
                      'status: 203':
                        index: 6
                        text: 'status: 203 Non-Authoritative Information'
                      'status: 204':
                        index: 7
                        text: 'status: 204 No Content'
                      'status: 205':
                        index: 8
                        text: 'status: 205 Reset Content'
                      'status: 206':
                        index: 9
                        text: 'status: 206 Partial Content'
                      'status: 207':
                        index: 10
                        text: 'status: 207 Multi-Status'
                      'status: 208':
                        index: 11
                        text: 'status: 208 Already Reported'
                      'status: 226':
                        index: 12
                        text: 'status: 226 IM Used'
                      'status: 300':
                        index: 13
                        text: 'status: 300 Multiple Choices'
                      'status: 301':
                        index: 14
                        text: 'status: 301 Moved Permanently'
                      'status: 302':
                        index: 15
                        text: 'status: 302 Found'
                      'status: 303':
                        index: 16
                        text: 'status: 303 See Other'
                      'status: 304':
                        index: 17
                        text: 'status: 304 Not Modified'
                      'status: 305':
                        index: 18
                        text: 'status: 305 Use Proxy'
                      'status: 306':
                        index: 19
                        text: 'status: 306 unused'
                      'status: 307':
                        index: 20
                        text: 'status: 307 Temporary Redirect'
                      'status: 308':
                        index: 21
                        text: 'status: 308 Permanent Redirect'
                      'status: 401':
                        index: 22
                        text: 'status: 401 Unauthorized'
                      'status: 402':
                        index: 23
                        text: 'status: 402 Payment Required'
                      'status: 403':
                        index: 24
                        text: 'status: 403 Forbidden'
                      'status: 404':
                        index: 25
                        text: 'status: 404 Not Found'
                      'status: 405':
                        index: 26
                        text: 'status: 405 Method Not Allowed'
                      'status: 406':
                        index: 27
                        text: 'status: 406 Not Acceptable'
                      'status: 407':
                        index: 28
                        text: 'status: 407 Proxy Authentication Required'
                      'status: 408':
                        index: 29
                        text: 'status: 408 Request Timeout'
                      'status: 409':
                        index: 30
                        text: 'status: 409 Conflict'
                      'status: 410':
                        index: 31
                        text: 'status: 410 Gone'
                      'status: 411':
                        index: 32
                        text: 'status: 411 Length Required'
                      'status: 412':
                        index: 33
                        text: 'status: 412 Precondition Failed'
                      'status: 413':
                        index: 34
                        text: 'status: 413 Payload Too Large'
                      'status: 414':
                        index: 35
                        text: 'status: 414 URI Too Long'
                      'status: 415':
                        index: 36
                        text: 'status: 415 Unsupported Media Type'
                      'status: 416':
                        index: 37
                        text: 'status: 416 Range Not Satisfiable'
                      'status: 417':
                        index: 38
                        text: 'status: 417 Expectation Failed'
                      'status: 418':
                        index: 39
                        text: 'status: 418 I''m a teapot'
                      'status: 421':
                        index: 40
                        text: 'status: 421 Misdirected Request'
                      'status: 422':
                        index: 41
                        text: 'status: 422 Unprocessable Content'
                      'status: 423':
                        index: 42
                        text: 'status: 423 Locked'
                      'status: 424':
                        index: 43
                        text: 'status: 424 Failed Dependency'
                      'status: 425':
                        index: 44
                        text: 'status: 425 Too Early'
                      'status: 426':
                        index: 45
                        text: 'status: 426 Upgrade Required'
                      'status: 428':
                        index: 46
                        text: 'status: 428 Precondition Required'
                      'status: 429':
                        index: 47
                        text: 'status: 429 Too Many Requests'
                      'status: 431':
                        index: 48
                        text: 'status: 431 Request Header Fields Too Large'
                      'status: 451':
                        index: 49
                        text: 'status: 451 Unavailable For Legal Reasons'
                      'status: 499':
                        index: 61
                        text: 'status: 499 Client Closed Request'
                      'status: 500':
                        index: 50
                        text: 'status: 500 Internal Server Error'
                      'status: 501':
                        index: 51
                        text: 'status: 501 Not Implemented'
                      'status: 502':
                        index: 52
                        text: 'status: 502 Bad Gateway'
                      'status: 503':
                        index: 53
                        text: 'status: 503 Service Unavailable'
                      'status: 504':
                        index: 54
                        text: 'status: 504 Gateway Timeout'
                      'status: 505':
                        index: 55
                        text: 'status: 505 HTTP Version Not Supported'
                      'status: 506':
                        index: 56
                        text: 'status: 506 Variant Also Negotiates'
                      'status: 507':
                        index: 57
                        text: 'status: 507 Insufficient Storage'
                      'status: 508':
                        index: 58
                        text: 'status: 508 Loop Detected'
                      'status: 510':
                        index: 59
                        text: 'status: 510 Not Extended'
                      'status: 511':
                        index: 60
                        text: 'status: 511 Network Authentication Required'
                    type: value
                noValue: Unknown
              overrides:
                - matcher:
                    id: byName
                    options: Value (sum)
                  properties:
                    - id: color
                      value:
                        mode: continuous-BlPu
                        seriesBy: last
            options:
              displayLabels:
                - percent
              legend:
                displayMode: list
                placement: right
                showLegend: true
                values: []
              pieType: pie
              reduceOptions:
                calcs:
                  - lastNotNull
                fields: ''
                limit: 50
                values: true
              sort: desc
              tooltip:
                hideZeros: false
                mode: single
                sort: none
          version: 12.3.1
    panel-39:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(remote_user)
                        (count_over_time({filename="$filename"}| json
                        [$__interval]))
                      legendFormat: 'Remote user: {{remote_user}}'
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations:
              - kind: seriesToRows
                spec:
                  id: seriesToRows
                  options: {}
              - kind: groupBy
                spec:
                  id: groupBy
                  options:
                    fields:
                      Metric:
                        aggregations: []
                        operation: groupby
                      Value:
                        aggregations:
                          - sum
                        operation: aggregate
        description: ''
        id: 39
        links: []
        title: Basic Auth Users
        vizConfig:
          group: piechart
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: palette-classic
                custom:
                  hideFrom:
                    legend: false
                    tooltip: false
                    viz: false
                mappings:
                  - options:
                      'Browser: ':
                        index: 62
                        text: 'Browser: Unknown'
                      'status: 101':
                        index: 0
                        text: 'status: 101 Switching Protocols'
                      'status: 102':
                        index: 1
                        text: 'status: 102 Processing'
                      'status: 103':
                        index: 2
                        text: 'status: 103 Early Hints'
                      'status: 200':
                        index: 3
                        text: 'status: 200 OK'
                      'status: 201':
                        index: 4
                        text: 'status: 201 Created'
                      'status: 202':
                        index: 5
                        text: 'status: 202 Accepted'
                      'status: 203':
                        index: 6
                        text: 'status: 203 Non-Authoritative Information'
                      'status: 204':
                        index: 7
                        text: 'status: 204 No Content'
                      'status: 205':
                        index: 8
                        text: 'status: 205 Reset Content'
                      'status: 206':
                        index: 9
                        text: 'status: 206 Partial Content'
                      'status: 207':
                        index: 10
                        text: 'status: 207 Multi-Status'
                      'status: 208':
                        index: 11
                        text: 'status: 208 Already Reported'
                      'status: 226':
                        index: 12
                        text: 'status: 226 IM Used'
                      'status: 300':
                        index: 13
                        text: 'status: 300 Multiple Choices'
                      'status: 301':
                        index: 14
                        text: 'status: 301 Moved Permanently'
                      'status: 302':
                        index: 15
                        text: 'status: 302 Found'
                      'status: 303':
                        index: 16
                        text: 'status: 303 See Other'
                      'status: 304':
                        index: 17
                        text: 'status: 304 Not Modified'
                      'status: 305':
                        index: 18
                        text: 'status: 305 Use Proxy'
                      'status: 306':
                        index: 19
                        text: 'status: 306 unused'
                      'status: 307':
                        index: 20
                        text: 'status: 307 Temporary Redirect'
                      'status: 308':
                        index: 21
                        text: 'status: 308 Permanent Redirect'
                      'status: 401':
                        index: 22
                        text: 'status: 401 Unauthorized'
                      'status: 402':
                        index: 23
                        text: 'status: 402 Payment Required'
                      'status: 403':
                        index: 24
                        text: 'status: 403 Forbidden'
                      'status: 404':
                        index: 25
                        text: 'status: 404 Not Found'
                      'status: 405':
                        index: 26
                        text: 'status: 405 Method Not Allowed'
                      'status: 406':
                        index: 27
                        text: 'status: 406 Not Acceptable'
                      'status: 407':
                        index: 28
                        text: 'status: 407 Proxy Authentication Required'
                      'status: 408':
                        index: 29
                        text: 'status: 408 Request Timeout'
                      'status: 409':
                        index: 30
                        text: 'status: 409 Conflict'
                      'status: 410':
                        index: 31
                        text: 'status: 410 Gone'
                      'status: 411':
                        index: 32
                        text: 'status: 411 Length Required'
                      'status: 412':
                        index: 33
                        text: 'status: 412 Precondition Failed'
                      'status: 413':
                        index: 34
                        text: 'status: 413 Payload Too Large'
                      'status: 414':
                        index: 35
                        text: 'status: 414 URI Too Long'
                      'status: 415':
                        index: 36
                        text: 'status: 415 Unsupported Media Type'
                      'status: 416':
                        index: 37
                        text: 'status: 416 Range Not Satisfiable'
                      'status: 417':
                        index: 38
                        text: 'status: 417 Expectation Failed'
                      'status: 418':
                        index: 39
                        text: 'status: 418 I''m a teapot'
                      'status: 421':
                        index: 40
                        text: 'status: 421 Misdirected Request'
                      'status: 422':
                        index: 41
                        text: 'status: 422 Unprocessable Content'
                      'status: 423':
                        index: 42
                        text: 'status: 423 Locked'
                      'status: 424':
                        index: 43
                        text: 'status: 424 Failed Dependency'
                      'status: 425':
                        index: 44
                        text: 'status: 425 Too Early'
                      'status: 426':
                        index: 45
                        text: 'status: 426 Upgrade Required'
                      'status: 428':
                        index: 46
                        text: 'status: 428 Precondition Required'
                      'status: 429':
                        index: 47
                        text: 'status: 429 Too Many Requests'
                      'status: 431':
                        index: 48
                        text: 'status: 431 Request Header Fields Too Large'
                      'status: 451':
                        index: 49
                        text: 'status: 451 Unavailable For Legal Reasons'
                      'status: 499':
                        index: 61
                        text: 'status: 499 Client Closed Request'
                      'status: 500':
                        index: 50
                        text: 'status: 500 Internal Server Error'
                      'status: 501':
                        index: 51
                        text: 'status: 501 Not Implemented'
                      'status: 502':
                        index: 52
                        text: 'status: 502 Bad Gateway'
                      'status: 503':
                        index: 53
                        text: 'status: 503 Service Unavailable'
                      'status: 504':
                        index: 54
                        text: 'status: 504 Gateway Timeout'
                      'status: 505':
                        index: 55
                        text: 'status: 505 HTTP Version Not Supported'
                      'status: 506':
                        index: 56
                        text: 'status: 506 Variant Also Negotiates'
                      'status: 507':
                        index: 57
                        text: 'status: 507 Insufficient Storage'
                      'status: 508':
                        index: 58
                        text: 'status: 508 Loop Detected'
                      'status: 510':
                        index: 59
                        text: 'status: 510 Not Extended'
                      'status: 511':
                        index: 60
                        text: 'status: 511 Network Authentication Required'
                    type: value
                noValue: Unknown
              overrides:
                - matcher:
                    id: byName
                    options: Value (sum)
                  properties:
                    - id: color
                      value:
                        mode: continuous-BlPu
                        seriesBy: last
                - __systemRef: hideSeriesFrom
                  matcher:
                    id: byNames
                    options:
                      mode: exclude
                      names:
                        - Value (sum)
                      prefix: 'All except:'
                      readOnly: true
                  properties:
                    - id: custom.hideFrom
                      value:
                        legend: false
                        tooltip: true
                        viz: true
            options:
              displayLabels:
                - percent
              legend:
                displayMode: list
                placement: right
                showLegend: true
                values: []
              pieType: pie
              reduceOptions:
                calcs:
                  - lastNotNull
                fields: ''
                values: true
              sort: desc
              tooltip:
                hideZeros: false
                mode: single
                sort: none
          version: 12.3.1
    panel-40:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(status) (count_over_time({filename="$filename"}|
                        json [$__interval]))
                      legendFormat: 'status: {{status}}'
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations: []
        description: ''
        id: 40
        links: []
        title: Status in time
        vizConfig:
          group: timeseries
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: palette-classic
                custom:
                  axisBorderShow: false
                  axisCenteredZero: false
                  axisColorMode: text
                  axisLabel: ''
                  axisPlacement: auto
                  barAlignment: 0
                  barWidthFactor: 0.6
                  drawStyle: line
                  fillOpacity: 0
                  gradientMode: none
                  hideFrom:
                    legend: false
                    tooltip: false
                    viz: false
                  insertNulls: false
                  lineInterpolation: linear
                  lineWidth: 1
                  pointSize: 5
                  scaleDistribution:
                    type: linear
                  showPoints: auto
                  showValues: false
                  spanNulls: false
                  stacking:
                    group: A
                    mode: none
                  thresholdsStyle:
                    mode: 'off'
                mappings:
                  - options:
                      'status: 101':
                        index: 0
                        text: 'status: 101 Switching Protocols'
                      'status: 102':
                        index: 1
                        text: 'status: 102 Processing'
                      'status: 103':
                        index: 2
                        text: 'status: 103 Early Hints'
                      'status: 200':
                        index: 3
                        text: 'status: 200 OK'
                      'status: 201':
                        index: 4
                        text: 'status: 201 Created'
                      'status: 202':
                        index: 5
                        text: 'status: 202 Accepted'
                      'status: 203':
                        index: 6
                        text: 'status: 203 Non-Authoritative Information'
                      'status: 204':
                        index: 7
                        text: 'status: 204 No Content'
                      'status: 205':
                        index: 8
                        text: 'status: 205 Reset Content'
                      'status: 206':
                        index: 9
                        text: 'status: 206 Partial Content'
                      'status: 207':
                        index: 10
                        text: 'status: 207 Multi-Status'
                      'status: 208':
                        index: 11
                        text: 'status: 208 Already Reported'
                      'status: 226':
                        index: 12
                        text: 'status: 226 IM Used'
                      'status: 300':
                        index: 13
                        text: 'status: 300 Multiple Choices'
                      'status: 301':
                        index: 14
                        text: 'status: 301 Moved Permanently'
                      'status: 302':
                        index: 15
                        text: 'status: 302 Found'
                      'status: 303':
                        index: 16
                        text: 'status: 303 See Other'
                      'status: 304':
                        index: 17
                        text: 'status: 304 Not Modified'
                      'status: 305':
                        index: 18
                        text: 'status: 305 Use Proxy'
                      'status: 306':
                        index: 19
                        text: 'status: 306 unused'
                      'status: 307':
                        index: 20
                        text: 'status: 307 Temporary Redirect'
                      'status: 308':
                        index: 21
                        text: 'status: 308 Permanent Redirect'
                      'status: 401':
                        index: 22
                        text: 'status: 401 Unauthorized'
                      'status: 402':
                        index: 23
                        text: 'status: 402 Payment Required'
                      'status: 403':
                        index: 24
                        text: 'status: 403 Forbidden'
                      'status: 404':
                        index: 25
                        text: 'status: 404 Not Found'
                      'status: 405':
                        index: 26
                        text: 'status: 405 Method Not Allowed'
                      'status: 406':
                        index: 27
                        text: 'status: 406 Not Acceptable'
                      'status: 407':
                        index: 28
                        text: 'status: 407 Proxy Authentication Required'
                      'status: 408':
                        index: 29
                        text: 'status: 408 Request Timeout'
                      'status: 409':
                        index: 30
                        text: 'status: 409 Conflict'
                      'status: 410':
                        index: 31
                        text: 'status: 410 Gone'
                      'status: 411':
                        index: 32
                        text: 'status: 411 Length Required'
                      'status: 412':
                        index: 33
                        text: 'status: 412 Precondition Failed'
                      'status: 413':
                        index: 34
                        text: 'status: 413 Payload Too Large'
                      'status: 414':
                        index: 35
                        text: 'status: 414 URI Too Long'
                      'status: 415':
                        index: 36
                        text: 'status: 415 Unsupported Media Type'
                      'status: 416':
                        index: 37
                        text: 'status: 416 Range Not Satisfiable'
                      'status: 417':
                        index: 38
                        text: 'status: 417 Expectation Failed'
                      'status: 418':
                        index: 39
                        text: 'status: 418 I''m a teapot'
                      'status: 421':
                        index: 40
                        text: 'status: 421 Misdirected Request'
                      'status: 422':
                        index: 41
                        text: 'status: 422 Unprocessable Content'
                      'status: 423':
                        index: 42
                        text: 'status: 423 Locked'
                      'status: 424':
                        index: 43
                        text: 'status: 424 Failed Dependency'
                      'status: 425':
                        index: 44
                        text: 'status: 425 Too Early'
                      'status: 426':
                        index: 45
                        text: 'status: 426 Upgrade Required'
                      'status: 428':
                        index: 46
                        text: 'status: 428 Precondition Required'
                      'status: 429':
                        index: 47
                        text: 'status: 429 Too Many Requests'
                      'status: 431':
                        index: 48
                        text: 'status: 431 Request Header Fields Too Large'
                      'status: 451':
                        index: 49
                        text: 'status: 451 Unavailable For Legal Reasons'
                      'status: 499':
                        index: 61
                        text: 'status: 499 Client Closed Request'
                      'status: 500':
                        index: 50
                        text: 'status: 500 Internal Server Error'
                      'status: 501':
                        index: 51
                        text: 'status: 501 Not Implemented'
                      'status: 502':
                        index: 52
                        text: 'status: 502 Bad Gateway'
                      'status: 503':
                        index: 53
                        text: 'status: 503 Service Unavailable'
                      'status: 504':
                        index: 54
                        text: 'status: 504 Gateway Timeout'
                      'status: 505':
                        index: 55
                        text: 'status: 505 HTTP Version Not Supported'
                      'status: 506':
                        index: 56
                        text: 'status: 506 Variant Also Negotiates'
                      'status: 507':
                        index: 57
                        text: 'status: 507 Insufficient Storage'
                      'status: 508':
                        index: 58
                        text: 'status: 508 Loop Detected'
                      'status: 510':
                        index: 59
                        text: 'status: 510 Not Extended'
                      'status: 511':
                        index: 60
                        text: 'status: 511 Network Authentication Required'
                    type: value
                thresholds:
                  mode: absolute
                  steps:
                    - color: green
                      value: 0
                    - color: red
                      value: 80
              overrides:
                - matcher:
                    id: byName
                    options: Value (sum)
                  properties:
                    - id: color
                      value:
                        mode: continuous-BlPu
                        seriesBy: last
            options:
              legend:
                calcs: []
                displayMode: list
                placement: bottom
                showLegend: true
              tooltip:
                hideZeros: false
                mode: single
                sort: none
          version: 12.3.1
    panel-41:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(request_method)
                        (count_over_time({filename="$filename"}| json
                        [$__interval]))
                      legendFormat: 'Method: {{request_method}}'
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations: []
        description: ''
        id: 41
        links: []
        title: Methods in time
        vizConfig:
          group: timeseries
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: palette-classic
                custom:
                  axisBorderShow: false
                  axisCenteredZero: false
                  axisColorMode: text
                  axisLabel: ''
                  axisPlacement: auto
                  barAlignment: 0
                  barWidthFactor: 0.6
                  drawStyle: line
                  fillOpacity: 0
                  gradientMode: none
                  hideFrom:
                    legend: false
                    tooltip: false
                    viz: false
                  insertNulls: false
                  lineInterpolation: linear
                  lineWidth: 1
                  pointSize: 5
                  scaleDistribution:
                    type: linear
                  showPoints: auto
                  showValues: false
                  spanNulls: false
                  stacking:
                    group: A
                    mode: none
                  thresholdsStyle:
                    mode: 'off'
                mappings:
                  - options:
                      'status: 101':
                        index: 0
                        text: 'status: 101 Switching Protocols'
                      'status: 102':
                        index: 1
                        text: 'status: 102 Processing'
                      'status: 103':
                        index: 2
                        text: 'status: 103 Early Hints'
                      'status: 200':
                        index: 3
                        text: 'status: 200 OK'
                      'status: 201':
                        index: 4
                        text: 'status: 201 Created'
                      'status: 202':
                        index: 5
                        text: 'status: 202 Accepted'
                      'status: 203':
                        index: 6
                        text: 'status: 203 Non-Authoritative Information'
                      'status: 204':
                        index: 7
                        text: 'status: 204 No Content'
                      'status: 205':
                        index: 8
                        text: 'status: 205 Reset Content'
                      'status: 206':
                        index: 9
                        text: 'status: 206 Partial Content'
                      'status: 207':
                        index: 10
                        text: 'status: 207 Multi-Status'
                      'status: 208':
                        index: 11
                        text: 'status: 208 Already Reported'
                      'status: 226':
                        index: 12
                        text: 'status: 226 IM Used'
                      'status: 300':
                        index: 13
                        text: 'status: 300 Multiple Choices'
                      'status: 301':
                        index: 14
                        text: 'status: 301 Moved Permanently'
                      'status: 302':
                        index: 15
                        text: 'status: 302 Found'
                      'status: 303':
                        index: 16
                        text: 'status: 303 See Other'
                      'status: 304':
                        index: 17
                        text: 'status: 304 Not Modified'
                      'status: 305':
                        index: 18
                        text: 'status: 305 Use Proxy'
                      'status: 306':
                        index: 19
                        text: 'status: 306 unused'
                      'status: 307':
                        index: 20
                        text: 'status: 307 Temporary Redirect'
                      'status: 308':
                        index: 21
                        text: 'status: 308 Permanent Redirect'
                      'status: 401':
                        index: 22
                        text: 'status: 401 Unauthorized'
                      'status: 402':
                        index: 23
                        text: 'status: 402 Payment Required'
                      'status: 403':
                        index: 24
                        text: 'status: 403 Forbidden'
                      'status: 404':
                        index: 25
                        text: 'status: 404 Not Found'
                      'status: 405':
                        index: 26
                        text: 'status: 405 Method Not Allowed'
                      'status: 406':
                        index: 27
                        text: 'status: 406 Not Acceptable'
                      'status: 407':
                        index: 28
                        text: 'status: 407 Proxy Authentication Required'
                      'status: 408':
                        index: 29
                        text: 'status: 408 Request Timeout'
                      'status: 409':
                        index: 30
                        text: 'status: 409 Conflict'
                      'status: 410':
                        index: 31
                        text: 'status: 410 Gone'
                      'status: 411':
                        index: 32
                        text: 'status: 411 Length Required'
                      'status: 412':
                        index: 33
                        text: 'status: 412 Precondition Failed'
                      'status: 413':
                        index: 34
                        text: 'status: 413 Payload Too Large'
                      'status: 414':
                        index: 35
                        text: 'status: 414 URI Too Long'
                      'status: 415':
                        index: 36
                        text: 'status: 415 Unsupported Media Type'
                      'status: 416':
                        index: 37
                        text: 'status: 416 Range Not Satisfiable'
                      'status: 417':
                        index: 38
                        text: 'status: 417 Expectation Failed'
                      'status: 418':
                        index: 39
                        text: 'status: 418 I''m a teapot'
                      'status: 421':
                        index: 40
                        text: 'status: 421 Misdirected Request'
                      'status: 422':
                        index: 41
                        text: 'status: 422 Unprocessable Content'
                      'status: 423':
                        index: 42
                        text: 'status: 423 Locked'
                      'status: 424':
                        index: 43
                        text: 'status: 424 Failed Dependency'
                      'status: 425':
                        index: 44
                        text: 'status: 425 Too Early'
                      'status: 426':
                        index: 45
                        text: 'status: 426 Upgrade Required'
                      'status: 428':
                        index: 46
                        text: 'status: 428 Precondition Required'
                      'status: 429':
                        index: 47
                        text: 'status: 429 Too Many Requests'
                      'status: 431':
                        index: 48
                        text: 'status: 431 Request Header Fields Too Large'
                      'status: 451':
                        index: 49
                        text: 'status: 451 Unavailable For Legal Reasons'
                      'status: 499':
                        index: 61
                        text: 'status: 499 Client Closed Request'
                      'status: 500':
                        index: 50
                        text: 'status: 500 Internal Server Error'
                      'status: 501':
                        index: 51
                        text: 'status: 501 Not Implemented'
                      'status: 502':
                        index: 52
                        text: 'status: 502 Bad Gateway'
                      'status: 503':
                        index: 53
                        text: 'status: 503 Service Unavailable'
                      'status: 504':
                        index: 54
                        text: 'status: 504 Gateway Timeout'
                      'status: 505':
                        index: 55
                        text: 'status: 505 HTTP Version Not Supported'
                      'status: 506':
                        index: 56
                        text: 'status: 506 Variant Also Negotiates'
                      'status: 507':
                        index: 57
                        text: 'status: 507 Insufficient Storage'
                      'status: 508':
                        index: 58
                        text: 'status: 508 Loop Detected'
                      'status: 510':
                        index: 59
                        text: 'status: 510 Not Extended'
                      'status: 511':
                        index: 60
                        text: 'status: 511 Network Authentication Required'
                    type: value
                thresholds:
                  mode: absolute
                  steps:
                    - color: green
                      value: 0
                    - color: red
                      value: 80
              overrides:
                - matcher:
                    id: byName
                    options: Value (sum)
                  properties:
                    - id: color
                      value:
                        mode: continuous-BlPu
                        seriesBy: last
            options:
              legend:
                calcs: []
                displayMode: list
                placement: bottom
                showLegend: true
              tooltip:
                hideZeros: false
                mode: single
                sort: none
          version: 12.3.1
    panel-43:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(remote_user)
                        (count_over_time({filename="$filename"}| json
                        [$__interval]))
                      legendFormat: 'User: {{remote_user}}'
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations: []
        description: ''
        id: 43
        links: []
        title: Basic Auth Users in time
        vizConfig:
          group: timeseries
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: palette-classic
                custom:
                  axisBorderShow: false
                  axisCenteredZero: false
                  axisColorMode: text
                  axisLabel: ''
                  axisPlacement: auto
                  barAlignment: 0
                  barWidthFactor: 0.6
                  drawStyle: line
                  fillOpacity: 0
                  gradientMode: none
                  hideFrom:
                    legend: false
                    tooltip: false
                    viz: false
                  insertNulls: false
                  lineInterpolation: linear
                  lineWidth: 1
                  pointSize: 5
                  scaleDistribution:
                    type: linear
                  showPoints: auto
                  showValues: false
                  spanNulls: false
                  stacking:
                    group: A
                    mode: none
                  thresholdsStyle:
                    mode: 'off'
                mappings:
                  - options:
                      'status: 101':
                        index: 0
                        text: 'status: 101 Switching Protocols'
                      'status: 102':
                        index: 1
                        text: 'status: 102 Processing'
                      'status: 103':
                        index: 2
                        text: 'status: 103 Early Hints'
                      'status: 200':
                        index: 3
                        text: 'status: 200 OK'
                      'status: 201':
                        index: 4
                        text: 'status: 201 Created'
                      'status: 202':
                        index: 5
                        text: 'status: 202 Accepted'
                      'status: 203':
                        index: 6
                        text: 'status: 203 Non-Authoritative Information'
                      'status: 204':
                        index: 7
                        text: 'status: 204 No Content'
                      'status: 205':
                        index: 8
                        text: 'status: 205 Reset Content'
                      'status: 206':
                        index: 9
                        text: 'status: 206 Partial Content'
                      'status: 207':
                        index: 10
                        text: 'status: 207 Multi-Status'
                      'status: 208':
                        index: 11
                        text: 'status: 208 Already Reported'
                      'status: 226':
                        index: 12
                        text: 'status: 226 IM Used'
                      'status: 300':
                        index: 13
                        text: 'status: 300 Multiple Choices'
                      'status: 301':
                        index: 14
                        text: 'status: 301 Moved Permanently'
                      'status: 302':
                        index: 15
                        text: 'status: 302 Found'
                      'status: 303':
                        index: 16
                        text: 'status: 303 See Other'
                      'status: 304':
                        index: 17
                        text: 'status: 304 Not Modified'
                      'status: 305':
                        index: 18
                        text: 'status: 305 Use Proxy'
                      'status: 306':
                        index: 19
                        text: 'status: 306 unused'
                      'status: 307':
                        index: 20
                        text: 'status: 307 Temporary Redirect'
                      'status: 308':
                        index: 21
                        text: 'status: 308 Permanent Redirect'
                      'status: 401':
                        index: 22
                        text: 'status: 401 Unauthorized'
                      'status: 402':
                        index: 23
                        text: 'status: 402 Payment Required'
                      'status: 403':
                        index: 24
                        text: 'status: 403 Forbidden'
                      'status: 404':
                        index: 25
                        text: 'status: 404 Not Found'
                      'status: 405':
                        index: 26
                        text: 'status: 405 Method Not Allowed'
                      'status: 406':
                        index: 27
                        text: 'status: 406 Not Acceptable'
                      'status: 407':
                        index: 28
                        text: 'status: 407 Proxy Authentication Required'
                      'status: 408':
                        index: 29
                        text: 'status: 408 Request Timeout'
                      'status: 409':
                        index: 30
                        text: 'status: 409 Conflict'
                      'status: 410':
                        index: 31
                        text: 'status: 410 Gone'
                      'status: 411':
                        index: 32
                        text: 'status: 411 Length Required'
                      'status: 412':
                        index: 33
                        text: 'status: 412 Precondition Failed'
                      'status: 413':
                        index: 34
                        text: 'status: 413 Payload Too Large'
                      'status: 414':
                        index: 35
                        text: 'status: 414 URI Too Long'
                      'status: 415':
                        index: 36
                        text: 'status: 415 Unsupported Media Type'
                      'status: 416':
                        index: 37
                        text: 'status: 416 Range Not Satisfiable'
                      'status: 417':
                        index: 38
                        text: 'status: 417 Expectation Failed'
                      'status: 418':
                        index: 39
                        text: 'status: 418 I''m a teapot'
                      'status: 421':
                        index: 40
                        text: 'status: 421 Misdirected Request'
                      'status: 422':
                        index: 41
                        text: 'status: 422 Unprocessable Content'
                      'status: 423':
                        index: 42
                        text: 'status: 423 Locked'
                      'status: 424':
                        index: 43
                        text: 'status: 424 Failed Dependency'
                      'status: 425':
                        index: 44
                        text: 'status: 425 Too Early'
                      'status: 426':
                        index: 45
                        text: 'status: 426 Upgrade Required'
                      'status: 428':
                        index: 46
                        text: 'status: 428 Precondition Required'
                      'status: 429':
                        index: 47
                        text: 'status: 429 Too Many Requests'
                      'status: 431':
                        index: 48
                        text: 'status: 431 Request Header Fields Too Large'
                      'status: 451':
                        index: 49
                        text: 'status: 451 Unavailable For Legal Reasons'
                      'status: 499':
                        index: 61
                        text: 'status: 499 Client Closed Request'
                      'status: 500':
                        index: 50
                        text: 'status: 500 Internal Server Error'
                      'status: 501':
                        index: 51
                        text: 'status: 501 Not Implemented'
                      'status: 502':
                        index: 52
                        text: 'status: 502 Bad Gateway'
                      'status: 503':
                        index: 53
                        text: 'status: 503 Service Unavailable'
                      'status: 504':
                        index: 54
                        text: 'status: 504 Gateway Timeout'
                      'status: 505':
                        index: 55
                        text: 'status: 505 HTTP Version Not Supported'
                      'status: 506':
                        index: 56
                        text: 'status: 506 Variant Also Negotiates'
                      'status: 507':
                        index: 57
                        text: 'status: 507 Insufficient Storage'
                      'status: 508':
                        index: 58
                        text: 'status: 508 Loop Detected'
                      'status: 510':
                        index: 59
                        text: 'status: 510 Not Extended'
                      'status: 511':
                        index: 60
                        text: 'status: 511 Network Authentication Required'
                    type: value
                thresholds:
                  mode: absolute
                  steps:
                    - color: green
                      value: 0
                    - color: red
                      value: 80
              overrides:
                - matcher:
                    id: byName
                    options: Value (sum)
                  properties:
                    - id: color
                      value:
                        mode: continuous-BlPu
                        seriesBy: last
            options:
              legend:
                calcs: []
                displayMode: list
                placement: bottom
                showLegend: true
              tooltip:
                hideZeros: false
                mode: single
                sort: none
          version: 12.3.1
    panel-44:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(http_user_agent)
                        (count_over_time({filename="$filename"}| json
                        [$__interval]))
                      legendFormat: 'Browser: {{http_user_agent}}'
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations: []
        description: ''
        id: 44
        links: []
        title: Browsers in time
        vizConfig:
          group: timeseries
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: palette-classic
                custom:
                  axisBorderShow: false
                  axisCenteredZero: false
                  axisColorMode: text
                  axisLabel: ''
                  axisPlacement: auto
                  barAlignment: 0
                  barWidthFactor: 0.6
                  drawStyle: line
                  fillOpacity: 0
                  gradientMode: none
                  hideFrom:
                    legend: false
                    tooltip: false
                    viz: false
                  insertNulls: false
                  lineInterpolation: linear
                  lineWidth: 1
                  pointSize: 5
                  scaleDistribution:
                    type: linear
                  showPoints: auto
                  showValues: false
                  spanNulls: false
                  stacking:
                    group: A
                    mode: none
                  thresholdsStyle:
                    mode: 'off'
                mappings:
                  - options:
                      'status: 101':
                        index: 0
                        text: 'status: 101 Switching Protocols'
                      'status: 102':
                        index: 1
                        text: 'status: 102 Processing'
                      'status: 103':
                        index: 2
                        text: 'status: 103 Early Hints'
                      'status: 200':
                        index: 3
                        text: 'status: 200 OK'
                      'status: 201':
                        index: 4
                        text: 'status: 201 Created'
                      'status: 202':
                        index: 5
                        text: 'status: 202 Accepted'
                      'status: 203':
                        index: 6
                        text: 'status: 203 Non-Authoritative Information'
                      'status: 204':
                        index: 7
                        text: 'status: 204 No Content'
                      'status: 205':
                        index: 8
                        text: 'status: 205 Reset Content'
                      'status: 206':
                        index: 9
                        text: 'status: 206 Partial Content'
                      'status: 207':
                        index: 10
                        text: 'status: 207 Multi-Status'
                      'status: 208':
                        index: 11
                        text: 'status: 208 Already Reported'
                      'status: 226':
                        index: 12
                        text: 'status: 226 IM Used'
                      'status: 300':
                        index: 13
                        text: 'status: 300 Multiple Choices'
                      'status: 301':
                        index: 14
                        text: 'status: 301 Moved Permanently'
                      'status: 302':
                        index: 15
                        text: 'status: 302 Found'
                      'status: 303':
                        index: 16
                        text: 'status: 303 See Other'
                      'status: 304':
                        index: 17
                        text: 'status: 304 Not Modified'
                      'status: 305':
                        index: 18
                        text: 'status: 305 Use Proxy'
                      'status: 306':
                        index: 19
                        text: 'status: 306 unused'
                      'status: 307':
                        index: 20
                        text: 'status: 307 Temporary Redirect'
                      'status: 308':
                        index: 21
                        text: 'status: 308 Permanent Redirect'
                      'status: 401':
                        index: 22
                        text: 'status: 401 Unauthorized'
                      'status: 402':
                        index: 23
                        text: 'status: 402 Payment Required'
                      'status: 403':
                        index: 24
                        text: 'status: 403 Forbidden'
                      'status: 404':
                        index: 25
                        text: 'status: 404 Not Found'
                      'status: 405':
                        index: 26
                        text: 'status: 405 Method Not Allowed'
                      'status: 406':
                        index: 27
                        text: 'status: 406 Not Acceptable'
                      'status: 407':
                        index: 28
                        text: 'status: 407 Proxy Authentication Required'
                      'status: 408':
                        index: 29
                        text: 'status: 408 Request Timeout'
                      'status: 409':
                        index: 30
                        text: 'status: 409 Conflict'
                      'status: 410':
                        index: 31
                        text: 'status: 410 Gone'
                      'status: 411':
                        index: 32
                        text: 'status: 411 Length Required'
                      'status: 412':
                        index: 33
                        text: 'status: 412 Precondition Failed'
                      'status: 413':
                        index: 34
                        text: 'status: 413 Payload Too Large'
                      'status: 414':
                        index: 35
                        text: 'status: 414 URI Too Long'
                      'status: 415':
                        index: 36
                        text: 'status: 415 Unsupported Media Type'
                      'status: 416':
                        index: 37
                        text: 'status: 416 Range Not Satisfiable'
                      'status: 417':
                        index: 38
                        text: 'status: 417 Expectation Failed'
                      'status: 418':
                        index: 39
                        text: 'status: 418 I''m a teapot'
                      'status: 421':
                        index: 40
                        text: 'status: 421 Misdirected Request'
                      'status: 422':
                        index: 41
                        text: 'status: 422 Unprocessable Content'
                      'status: 423':
                        index: 42
                        text: 'status: 423 Locked'
                      'status: 424':
                        index: 43
                        text: 'status: 424 Failed Dependency'
                      'status: 425':
                        index: 44
                        text: 'status: 425 Too Early'
                      'status: 426':
                        index: 45
                        text: 'status: 426 Upgrade Required'
                      'status: 428':
                        index: 46
                        text: 'status: 428 Precondition Required'
                      'status: 429':
                        index: 47
                        text: 'status: 429 Too Many Requests'
                      'status: 431':
                        index: 48
                        text: 'status: 431 Request Header Fields Too Large'
                      'status: 451':
                        index: 49
                        text: 'status: 451 Unavailable For Legal Reasons'
                      'status: 499':
                        index: 61
                        text: 'status: 499 Client Closed Request'
                      'status: 500':
                        index: 50
                        text: 'status: 500 Internal Server Error'
                      'status: 501':
                        index: 51
                        text: 'status: 501 Not Implemented'
                      'status: 502':
                        index: 52
                        text: 'status: 502 Bad Gateway'
                      'status: 503':
                        index: 53
                        text: 'status: 503 Service Unavailable'
                      'status: 504':
                        index: 54
                        text: 'status: 504 Gateway Timeout'
                      'status: 505':
                        index: 55
                        text: 'status: 505 HTTP Version Not Supported'
                      'status: 506':
                        index: 56
                        text: 'status: 506 Variant Also Negotiates'
                      'status: 507':
                        index: 57
                        text: 'status: 507 Insufficient Storage'
                      'status: 508':
                        index: 58
                        text: 'status: 508 Loop Detected'
                      'status: 510':
                        index: 59
                        text: 'status: 510 Not Extended'
                      'status: 511':
                        index: 60
                        text: 'status: 511 Network Authentication Required'
                    type: value
                thresholds:
                  mode: absolute
                  steps:
                    - color: green
                      value: 0
                    - color: red
                      value: 80
              overrides:
                - matcher:
                    id: byName
                    options: Value (sum)
                  properties:
                    - id: color
                      value:
                        mode: continuous-BlPu
                        seriesBy: last
            options:
              legend:
                calcs: []
                displayMode: list
                placement: bottom
                showLegend: true
              tooltip:
                hideZeros: false
                mode: single
                sort: none
          version: 12.3.1
    panel-45:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(remote_user)
                        (count_over_time({filename="$filename"}| json |
                        status="401" [$__interval]))
                      legendFormat: '{{remote_user}}'
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations:
              - kind: seriesToRows
                spec:
                  id: seriesToRows
                  options: {}
              - kind: groupBy
                spec:
                  id: groupBy
                  options:
                    fields:
                      Metric:
                        aggregations: []
                        operation: groupby
                      Value:
                        aggregations:
                          - sum
                        operation: aggregate
              - kind: organize
                spec:
                  id: organize
                  options:
                    excludeByName: {}
                    indexByName: {}
                    renameByName:
                      Metric: Users
                      Value (sum): Request(s)
        description: List of all users that received a "401" (unauthorized) status
        id: 45
        links: []
        title: Top bad Basic Auth Users
        vizConfig:
          group: table
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: thresholds
                custom:
                  align: auto
                  cellOptions:
                    type: auto
                  footer:
                    reducers: []
                  inspect: false
                mappings:
                  - options:
                      '{remote_user=""}':
                        index: 0
                        text: No user
                    type: value
                min: 0
                thresholds:
                  mode: absolute
                  steps:
                    - color: green
                      value: 0
                    - color: red
                      value: 80
              overrides:
                - matcher:
                    id: byName
                    options: Request(s)
                  properties:
                    - id: color
                      value:
                        mode: continuous-BlPu
                    - id: custom.width
                      value: 300
                    - id: custom.cellOptions
                      value:
                        mode: gradient
                        type: gauge
            options:
              cellHeight: sm
              showHeader: true
              sortBy:
                - desc: true
                  displayName: Request(s)
          version: 12.3.1
    panel-47:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(remote_addr)
                        (count_over_time({filename="$filename"} | json | status
                        = "401"  [$__interval]))
                      legendFormat: '{{remote_addr}}'
                      queryType: range
                    version: v0
                  refId: '401'
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(remote_addr)
                        (count_over_time({filename="$filename"} | json | status
                        = "403"  [$__interval]))
                      legendFormat: '{{remote_addr}}'
                      queryType: range
                    version: v0
                  refId: '403'
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(remote_addr)
                        (count_over_time({filename="$filename"} | json | status
                        = "404"  [$__interval]))
                      legendFormat: '{{remote_addr}}'
                      queryType: range
                    version: v0
                  refId: '404'
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(remote_addr)
                        (count_over_time({filename="$filename"} | json | status
                        = "400"  [$__interval]))
                      legendFormat: '{{remote_addr}}'
                      queryType: range
                    version: v0
                  refId: '400'
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(remote_addr)
                        (count_over_time({filename="$filename"} | json | status
                        = "500"  [$__interval]))
                      legendFormat: '{{remote_addr}}'
                      queryType: range
                    version: v0
                  refId: '500'
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(remote_addr)
                        (count_over_time({filename="$filename"} | json | status
                        = "502"  [$__interval]))
                      legendFormat: '{{remote_addr}}'
                      queryType: range
                    version: v0
                  refId: '502'
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(remote_addr)
                        (count_over_time({filename="$filename"} | json | status
                        = "301"  [$__interval]))
                      legendFormat: '{{remote_addr}}'
                      queryType: range
                    version: v0
                  refId: '301'
            queryOptions:
              interval: 5m
            transformations:
              - kind: seriesToRows
                spec:
                  id: seriesToRows
                  options: {}
              - kind: groupBy
                spec:
                  id: groupBy
                  options:
                    fields:
                      Metric:
                        aggregations: []
                        operation: groupby
                      Value:
                        aggregations:
                          - sum
                        operation: aggregate
              - kind: organize
                spec:
                  id: organize
                  options:
                    excludeByName: {}
                    indexByName: {}
                    renameByName:
                      Metric: IP address
                      Value (sum): Request(s)
        description: ''
        id: 47
        links: []
        title: Top (bad) IPs
        vizConfig:
          group: table
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: thresholds
                custom:
                  align: auto
                  cellOptions:
                    type: auto
                  footer:
                    reducers: []
                  inspect: false
                min: 0
                thresholds:
                  mode: absolute
                  steps:
                    - color: green
                      value: 0
                    - color: red
                      value: 80
              overrides:
                - matcher:
                    id: byName
                    options: Request(s)
                  properties:
                    - id: custom.cellOptions
                      value:
                        mode: gradient
                        type: gauge
                    - id: color
                      value:
                        mode: continuous-BlPu
                    - id: custom.width
                      value: 300
            options:
              cellHeight: sm
              showHeader: true
              sortBy:
                - desc: true
                  displayName: Request(s)
          version: 12.3.1
    panel-49:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(request_uri)
                        (count_over_time({filename="$filename"} | json | status
                        = "401" [$__interval]))
                      legendFormat: '{{request_uri}}'
                      queryType: range
                    version: v0
                  refId: '401'
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(request_uri)
                        (count_over_time({filename="$filename"} | json | status
                        = "403" [$__interval]))
                      legendFormat: '{{request_uri}}'
                      queryType: range
                    version: v0
                  refId: '403'
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(request_uri)
                        (count_over_time({filename="$filename"} | json | status
                        = "404" [$__interval]))
                      legendFormat: '{{request_uri}}'
                      queryType: range
                    version: v0
                  refId: '404'
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(request_uri)
                        (count_over_time({filename="$filename"} | json | status
                        = "400" [$__interval]))
                      legendFormat: '{{request_uri}}'
                      queryType: range
                    version: v0
                  refId: '400'
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(request_uri)
                        (count_over_time({filename="$filename"} | json | status
                        = "500" [$__interval]))
                      legendFormat: '{{request_uri}}'
                      queryType: range
                    version: v0
                  refId: '500'
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(request_uri)
                        (count_over_time({filename="$filename"} | json | status
                        = "502" [$__interval]))
                      legendFormat: '{{request_uri}}'
                      queryType: range
                    version: v0
                  refId: '502'
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(request_uri)
                        (count_over_time({filename="$filename"} | json | status
                        = "301" [$__interval]))
                      legendFormat: '{{request_uri}}'
                      queryType: range
                    version: v0
                  refId: '301'
            queryOptions:
              interval: 5m
            transformations:
              - kind: seriesToRows
                spec:
                  id: seriesToRows
                  options: {}
              - kind: groupBy
                spec:
                  id: groupBy
                  options:
                    fields:
                      Metric:
                        aggregations: []
                        operation: groupby
                      Value:
                        aggregations:
                          - sum
                        operation: aggregate
              - kind: organize
                spec:
                  id: organize
                  options:
                    excludeByName: {}
                    indexByName: {}
                    renameByName:
                      Metric: IP address
                      Value (sum): Request(s)
        description: >-
          All request_uri that get a status between the following:
          401,403,404,400,500,502,301
        id: 49
        links: []
        title: Top (bad) request_uri
        vizConfig:
          group: table
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: thresholds
                custom:
                  align: auto
                  cellOptions:
                    type: auto
                  footer:
                    reducers: []
                  inspect: false
                min: 0
                thresholds:
                  mode: absolute
                  steps:
                    - color: green
                      value: 0
                    - color: red
                      value: 80
              overrides:
                - matcher:
                    id: byName
                    options: Request(s)
                  properties:
                    - id: custom.cellOptions
                      value:
                        mode: gradient
                        type: gauge
                    - id: color
                      value:
                        mode: continuous-BlPu
                    - id: custom.width
                      value: 300
            options:
              cellHeight: sm
              showHeader: true
              sortBy:
                - desc: true
                  displayName: Request(s)
          version: 12.3.1
    panel-5:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: >-
                        sum by(filename)
                        (count_over_time({filename="$filename"}[$__interval]))
                      queryType: range
                    version: v0
                  refId: A
            queryOptions:
              interval: 5m
            transformations: []
        description: ''
        id: 5
        links: []
        title: Total requests
        vizConfig:
          group: stat
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: thresholds
                noValue: '0'
                thresholds:
                  mode: absolute
                  steps:
                    - color: purple
                      value: 0
                unit: short
              overrides: []
            options:
              colorMode: background
              graphMode: area
              justifyMode: auto
              orientation: auto
              percentChangeColorMode: standard
              reduceOptions:
                calcs:
                  - sum
                fields: ''
                values: false
              showPercentChange: false
              textMode: auto
              wideLayout: true
          version: 12.3.1
    panel-54:
      kind: Panel
      spec:
        data:
          kind: QueryGroup
          spec:
            queries:
              - kind: PanelQuery
                spec:
                  hidden: false
                  query:
                    group: loki
                    kind: DataQuery
                    spec:
                      editorMode: code
                      expr: "sum by (geoip_lat, geoip_lon, geoip_city_name) (\r\n  count_over_time({job=\"nginx\"} | json | geoip_lat != \"\" [$__interval])\r\n)"
                      queryType: range
                    version: v0
                  refId: A
            queryOptions: {}
            transformations:
              - kind: seriesToRows
                spec:
                  id: seriesToRows
                  options: {}
              - kind: extractFields
                spec:
                  id: extractFields
                  options:
                    source: Metric
              - kind: convertFieldType
                spec:
                  id: convertFieldType
                  options:
                    conversions:
                      - destinationType: number
                        targetField: geoip_lat
                      - destinationType: number
                        targetField: geoip_lon
                    fields: {}
        description: ''
        id: 54
        links: []
        title: ''
        transparent: true
        vizConfig:
          group: geomap
          kind: VizConfig
          spec:
            fieldConfig:
              defaults:
                color:
                  mode: thresholds
                custom:
                  hideFrom:
                    legend: false
                    tooltip: false
                    viz: false
                thresholds:
                  mode: absolute
                  steps:
                    - color: green
                      value: 0
                    - color: red
                      value: 80
              overrides: []
            options:
              basemap:
                config:
                  showLabels: true
                  theme: auto
                name: Layer 0
                type: default
              controls:
                mouseWheelZoom: true
                showAttribution: false
                showDebug: false
                showMeasure: false
                showScale: false
                showZoom: true
              layers:
                - config:
                    showLegend: false
                    style:
                      color:
                        fixed: dark-green
                      opacity: 0.4
                      rotation:
                        fixed: 0
                        max: 360
                        min: -360
                        mode: mod
                      size:
                        fixed: 5
                        max: 15
                        min: 2
                      symbol:
                        fixed: img/icons/marker/circle.svg
                        mode: fixed
                      symbolAlign:
                        horizontal: center
                        vertical: center
                      text:
                        field: geoip_city_name
                        fixed: ''
                        mode: field
                      textConfig:
                        fontSize: 9
                        offsetX: 0
                        offsetY: 0
                        textAlign: center
                        textBaseline: middle
                  location:
                    latitude: geoip_lat
                    longitude: geoip_lon
                    mode: coords
                  name: Clients
                  tooltip: true
                  type: markers
              tooltip:
                mode: details
              view:
                allLayers: true
                id: fit
                lat: 33
                lon: 120
                noRepeat: false
                padding: 20
                shared: false
                zoom: 15
          version: 12.3.1
  layout:
    kind: GridLayout
    spec:
      items:
        - kind: GridLayoutItem
          spec:
            element:
              kind: ElementReference
              name: panel-54
            height: 11
            width: 24
            x: 0
            'y': 0
  links: []
  liveNow: false
  preload: false
  tags: []
  timeSettings:
    autoRefresh: 5m
    autoRefreshIntervals:
      - 5s
      - 10s
      - 30s
      - 1m
      - 5m
      - 15m
      - 30m
      - 1h
      - 2h
      - 1d
    fiscalYearStartMonth: 0
    from: now-24h
    hideTimepicker: false
    timezone: ''
    to: now
    weekStart: monday
  title: Nginx
  variables:
    - kind: QueryVariable
      spec:
        allowCustomValue: true
        current:
          text: ''
          value: ''
        definition: ''
        hide: dontHide
        includeAll: false
        label: Filename
        multi: false
        name: filename
        options: []
        query:
          group: loki
          kind: DataQuery
          spec:
            label: filename
            refId: LokiVariableQueryEditor-VariableQuery
            stream: ''
            type: 1
          version: v0
        refresh: onDashboardLoad
        regex: ''
        skipUrlSync: false
        sort: disabled
status: {}
