Sign inSign up

adriantarau/heimdall

By adriantarau

•Updated about 1 month ago

Heimdall is a tool created for developers to monitor and test services.

Image
Developer tools
Monitoring & observability
2

2.1K

adriantarau/heimdall repository overview

⁠Introduction

Heimdall is a tool created for developers to monitor and test services, allowing them to validate and troubleshoot performance issues. It provides simulated services that applications can use to replicate real interactions with remote services. Furthermore, it monitors the infrastructure while conducting load tests on these services.

For more information about Heimdal, please visit https://github.com/adrian-tarau/heimdall⁠.

⁠Protocols

The following protocols/services are faked and available to be used:

  • SMTP (Simple Mail Transfer Protocol)
  • SNMP (Simple Network Management Protocol)
  • Syslog (Standard for Message Logging)
  • GELF (Graylog Extended Logging Format)
⁠Events

Heimdall integrates with Apache Kafka and Pulsar brokers. Events can be pulled from topics, viewed and searched.

⁠Load Testing

For testing the performance of services, Heimdall integrates the following load-testing tools:

Heimdall utilizes these tools' reporting capabilities for individual simulations, but it also integrates the results from these simulations to provide trends and reporting capabilities that surpass their individual functionalities.

⁠Running

The compose.yaml should be changed if needed (passwords, volumes, etc). By default, Heimdall exposes all required ports (web container, protocols, etc) starting with port 9800, but they can be changed as needed. Latest version of the container (the development branch) is used unless it is changed.

The protocols are mapped to the following ports:

  • 9805: SMTP
  • 9806: SMTP with TLS
  • 9807: SNMP over UDP
  • 9808: SNMP over TCP
  • 9809 Syslog over UDP
  • 9810: Syslog over TCP
  • 9811: GELF over UDP
  • 9812: GELF over TCP

The environment variable HEIMDALL_PROTOCOL_SIMULATOR_ENABLED can be set to true to enable simulators for protocols.

services:
  heimdall:
    image: adriantarau/heimdall:latest
    ports:
      - 9800:8080
      - 9805:2525
      - 9806:2526
      - 9807:2161/udp
      - 9808:2162
      - 9809:2514/udp
      - 9810:2601
      - 9811:12201/udp
      - 9812:12200
    volumes:
      - heimdall-data:/data
    depends_on:
      mysql:
        condition: service_healthy
    environment:
      HEIMDALL_DATABASE_HOST: mysql
      HEIMDALL_DATABASE_NAME: heimdall
      HEIMDALL_DATABASE_USERNAME: heimdall
      HEIMDALL_DATABASE_PASSWORD: hD0IzwPtPD3353wj1ADq
      HEIMDALL_PROTOCOL_SIMULATOR_ENABLED: false
      HEIMDALL_RESOURCE_DIRECTORY: /data

  mysql:
    image: mysql:8.2
    ports:
      - 3306
    volumes:
      - mysql-data:/var/lib/mysql
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: yes
      MYSQL_DATABASE: heimdall
      MYSQL_USER: heimdall
      MYSQL_PASSWORD: hD0IzwPtPD3353wj1ADq
    healthcheck:
      test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost", "-u", "$${MYSQL_USER}", "-p$${MYSQL_PASSWORD}" ]
      interval: 5s
      timeout: 5s
      retries: 30

volumes:
  mysql-data:
  heimdall-data:

Start Heimdal using the following command:

docker compose -p heimdall up -d

Tag summary

Content type

Image

Digest

sha256:67e443b49…

Size

741.4 MB

Last updated

about 1 month ago

docker pull adriantarau/heimdall:1.0.latest