# This file is managed by ansible, don't make changes here - they will be # overwritten. [Unit] Description=prometheus {% if container_binary == 'docker' %} After=docker.service Requires=docker.service {% else %} After=network.target {% endif %} [Service] EnvironmentFile=-/etc/environment {% if container_binary == 'podman' %} ExecStartPre=-/usr/bin/rm -f /%t/%n-pid /%t/%n-cid ExecStartPre=-/usr/bin/{{ container_binary }} rm --storage prometheus {% endif %} ExecStartPre=-/usr/bin/{{ container_binary }} rm -f prometheus ExecStart=/usr/bin/{{ container_binary }} run --rm --name=prometheus \ {% if container_binary == 'podman' %} -d --log-driver journald --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \ {% endif %} -v "{{ prometheus_conf_dir }}:/etc/prometheus:Z" \ -v "{{ prometheus_data_dir }}:/prometheus:Z" \ --net=host \ --user={{ prometheus_user_id }} \ --cpu-period={{ prometheus_container_cpu_period }} \ --cpu-quota={{ prometheus_container_cpu_period * prometheus_container_cpu_cores }} \ --memory={{ prometheus_container_memory }}GB \ --memory-swap={{ prometheus_container_memory * 2 }}GB \ {{ prometheus_container_image }} \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb.path=/prometheus \ {% if prometheus_storage_tsdb_retention_time is defined %} --storage.tsdb.retention.time={{ prometheus_storage_tsdb_retention_time }} \ {% endif %} --web.external-url=http://{{ ansible_facts['fqdn'] }}:{{ prometheus_port }}/ \ --web.listen-address={{ grafana_server_addr }}:{{ prometheus_port }} {% if container_binary == 'podman' %} ExecStop=/usr/bin/sh -c "/usr/bin/{{ container_binary }} rm -f `cat /%t/%n-cid`" {% else %} ExecStop=/usr/bin/{{ container_binary }} stop prometheus {% endif %} KillMode=none Restart=always RestartSec=10s TimeoutStartSec=120 TimeoutStopSec=15 {% if container_binary == 'podman' %} Type=forking PIDFile=/%t/%n-pid {% endif %} [Install] WantedBy=multi-user.target