Uptime UI (and Discover) not showing any data in Heartbeat

What I've done:

  • Set up a Docker container running Heartbeat and sending to a remote ES cluster
  • Configured monitors

What should be happening
I should see my Heartbeat monitors in the Uptime UI

What is happening
Uptime UI shows error "There was a problem retrieving the index pattern" on load, then shows no monitors. No data in Discover either, both with UptimeIndexPattern and variations of heatbeat*.

My heartbeat.yml:

output:
  elasticsearch:
    hosts: ['http://172.24.102.168:9200','http://172.24.102.169:9200']
    username: '${ELASTICSEARCH_USERNAME:}'
    password: '${ELASTICSEARCH_PASSWORD:}'
setup:
  kibana:
    host: '${KIBANA_URL:}'
  dashboards:
    enabled: false
  template:
    settings:
      index:
        number_of_shards: 1
        codec: best_compression
heartbeat:
  config:
    monitors:
      path: '${path.config}/monitors.d/*'
      reload:
        enabled: true
        period: 1m
processors:
  - add_observer_metadata: {}
  - add_cloud_metadata: {}
  - add_host_metadata: {}
  - add_kubernetes_metadata: {}

Monitors:

- id: sample-github
  type: http
  name: GitHub
  schedule: '@every 1m'
  hosts:
    - github.com

- id: appserv
  type: http
  name: appserv
  schedule: '@every 1m'
  hosts:
    - http://172.24.102.222:9000/flash-http-services
    - http://172.24.102.211:9000/flash-http-services
    - http://172.24.102.205:9000/flash-http-services

Versions:

  • Heartbeat: 7.5.2 (also tried with 7.5.1)
  • Kibana: 7.5.1
  • Elasticsearch: 7.5.1

Uptime UI:

Discover:

Actual index data:

What I've tried:

  • The docs (bottom of this page) said to use an alias to heartbeat-8* (can someone explain why Stack version 7.x is using an 8 index pattern???), so I tried creating an alias. I've tried all of the following and the aliases were created, but Uptime and Discover still refused to work:
{ "add" : { "index" : "heartbeat-*", "alias" : "heartbeat-8*" } } // Tried this first, but it got rejected because * is not allowed; the docs were misleading
{ "add" : { "index" : "heartbeat-*", "alias" : "heartbeat-8" } }
{ "add" : { "index" : "heartbeat-*", "alias" : "UptimeIndexPattern" } }
  • Tried stopping heartbeat, deleting all heartbeat indices, index templates and index patterns and starting again
  • Tried deleting the UptimeIndexPattern and giving my heartbeat-* index the ID heartbeat-8*

The most perplexing fact is Discover not working. I can get that Uptime might be broken, but Discover just falls over too.

Please, somebody help me. Setting up Heartbeat used to be the easiest part of the entire Elastic Stack. Now for some reason it's broken, and it's driving me crazy.

Sorry that you are facing this issue. We resolved most of index pattern issues in 7.6, would it be possible for you to upgrade? Otherwise we can dig deeper to resolve this issue.

Another customer was facing this issue as well , you can read about it here There was an error retrieving the index pattern

I'm not in control of the server components, so I can't promise an upgrade for them, but I'll try to push for it. I can try again with 7.6 for Heartbeat, but I don't think that will make a difference...?:thinking:

We have removed usage of custom index pattern in 7.6, we are now using dynamic index pattern values in kuery bar. That custom index pattern wasn't working in discover and lens, now if you will create index pattern yourself and use it in discover, it will work.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.