http response prometheus /api/v1/labels 200 {"status":"success","data":["alertname"]}
http response prometheus /api/v1/query_range 200 {"status":"success","data":{"resultType":"matrix","result":[{"metric":{},"values":[]}]}}
http start prometheus 127.0.0.1:9111

exec bash -x ./test.sh &
exec karma --pid-file=karma.pid --config.file=karma.yaml
! stdout .
cmp stderr stderr.txt
wait

-- stderr.txt --
level=INFO msg="Reading configuration file" path=karma.yaml
level=INFO msg="Version: dev"
level=INFO msg="Configured Alertmanager source" name=default cluster=default uri=http://127.0.0.1 proxy=false readonly=false
level=INFO msg="Writing PID file" path=karma.pid
level=INFO msg="Initial Alertmanager collection"
level=INFO msg="Pulling latest alerts and silences from Alertmanager"
level=INFO msg="Collecting alerts and silences" alertmanager=default
level=INFO msg="GET request" uri=http://127.0.0.1/metrics timeout=40s
level=ERROR msg="Request failed" error="Get \"http://127.0.0.1/metrics\": dial tcp 127.0.0.1:80: connect: connection refused" alertmanager=default uri=http://127.0.0.1
level=ERROR msg="Collection failed" error="Get \"http://127.0.0.1/api/v2/silences\": dial tcp 127.0.0.1:80: connect: connection refused" alertmanager=default try=1/2
level=INFO msg="GET request" uri=http://127.0.0.1/metrics timeout=40s
level=ERROR msg="Request failed" error="Get \"http://127.0.0.1/metrics\": dial tcp 127.0.0.1:80: connect: connection refused" alertmanager=default uri=http://127.0.0.1
level=ERROR msg="Collection failed" error="Get \"http://127.0.0.1/api/v2/silences\": dial tcp 127.0.0.1:80: connect: connection refused" alertmanager=default try=2/2
level=INFO msg="Collection completed"
level=INFO msg="Done, starting HTTP server"
level=INFO msg="Starting HTTP server" address=127.0.0.1:8111
level=WARN msg="Error while configuring HTTP transport for history request" worker=1 uri=http://127.0.0.1:9111 error="failed to create HTTP transport for 'http://127.0.0.1:9111': open /xxx/yyy/ca.pem: no such file or directory"
level=INFO msg="Shutting down HTTP server" signal=terminated
level=INFO msg="HTTP server shut down"
level=INFO msg="Removing PID file" path=karma.pid
-- karma.yaml --
alertmanager:
  servers:
    - name: default
      uri: http://127.0.0.1
listen:
  address: 127.0.0.1
  port: 8111
history:
  enabled: true
  workers: 1
  timeout: 10s
  rewrite:
    - source: '(.*)'
      uri: '$1'
      tls:
        ca: /xxx/yyy/ca.pem
        insecureSkipVerify: true
-- query.json --
{
    "sources": [
        "http://127.0.0.1:9111",
        "http://127.0.0.1:9111"
    ],
    "labels": {
        "alertname": "Fake Alert"
    }
}
-- test.sh --
I=0
while [ ! -f karma.pid ] && [ $I -lt 30 ]; do sleep 1; I=$((I+1)); done

sleep 5
curl -s -f -o /dev/null -XPOST -d @query.json http://127.0.0.1:8111/history.json
cat karma.pid | xargs kill
