Grafana Loki

  • Github
    > git clone
  • Docker
    > cd loki/production
    > docker-compose pull
    > docker-compose up
  • Grafana
    Used for visualization of log file data.
    • Open Browser
    • Credentials
      Username: admin
      Password: admin
    • Activate Loki
  • promtail
    Pushes log file content to Grafana Loki.
    1. Open
    2. Download e.g.
    3. Unzip
    4. Configuration
      1. Create config.yaml, for content see appendix
      2. Hints
        1. Keep attention to parse your timestamp correctly, otherwise you will see only the date/time of the import timestamp. Timestamps are handled by go, so use online editors to check your parsings,
        2. Keep attention on multilines.
        3. Regular expressions can be quiet comprehensive to read, so use online regex parser/checker, e.g.
  • Start promtail
    promtail.exe -config.file=config.yaml
  • Back to Grafana



  http_listen_port: 9080
  grpc_listen_port: 0

  filename: D:/promtail/positions.yaml # will be created automatically by promtail. This location needs to be writeable by promtail.

  url: http://localhost:3100/loki/api/v1/push
    username: admin
    password: admin

  - job_name: MyApp
    - multiline: # identify timestamps as first line of a multiline block.
        firstline: '^\d{4}-\d{2}-\d{2}.\d{1,2}:\d{2}:\d{2}.\d{4}'
        max_wait_time: 3s
    - regex: # #
        expression: '^(?P<date>\d{1,4}.\d{1,2}.\d{1,2}).(?P<time>\d{1,4}.\d{1,2}.\d{1,2}).(?P<ms>\d{1,3})..(?P<level>[\w\s]+)'
    - template:
        source: time
        template: '{{ .date }}T{{ .time }}.{{ .ms }}+02:00'
    - timestamp:
        source: time
        format: "2006-01-02T15:04:05.000-07:00" # #time.Parse
    - labels:
      - targets:
          - localhost
          job: MyApp # A `job` label is fairly standard in prometheus and useful for linking metrics and logs.
          host: workstation # A `host` label will help identify logs from this machine vs others
          agent: promtail
          __path__: D:/logs/*.log

Docker in Hyper-V Image

Using Docker in a Hyper-V image can be that easy – if you know how to do that. The use case is quite simple: imagine you have a company or private infrastructure that runs on a server. This server runs multiple instances of Windows (Server) where one instance is used for developing and another for testing. Now if the assignement is to create a Docker image that runs your application than you might have the same problems that I had – I didn’t work on a fast try. So here is the short and simple solution of a few hours of trying and searching.

Preferences Hyper-V Host

  1. Start Hyper-V-Manager
  2. Write down name of the image that should run Docker for Windows
  3. Download the following script
  4. Open powershell as Administrator
  5. Execute script
powershell -ExecutionPolicy Bypass -File .\Enable-NestedVm.ps1 {Hyper-V-image-name-that-should-run-Docker}

-ExecutionPolicy Bypass: by default, no one is allowed to execute unsigned scripts, so bypass this setting. Just try it out without this parameter and you will see the response.
-File: the file to execute

Preferences Hyper-V Image

  1. Enable Windows Features
    + Containers
    + Hyper-V
  2. Download
  3. Install Docker
  4. Concratulation, you successfully installed Docker in a Hyper-V image!