# Fleet statistics over API

**URL:** <https://forums.balena.io/t/fleet-statistics-over-api/367049>\
**Category:** Product support\
**Created:** [March 6, 2023, 9:26am UTC](https://forums.balena.io/t/fleet-statistics-over-api/367049 "2023-03-06T09:26:22Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![vpetersson](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/vpetersson/32/4991_2.png) [@vpetersson](https://forums.balena.io/u/vpetersson)\
**Post date:** [March 6, 2023, 9:26am UTC](https://forums.balena.io/t/fleet-statistics-over-api/367049/1 "2023-03-06T09:26:22Z")

</div>

In the UI you can get a breakdown of how many devices are in the various states on a per-fleet basis. However, as far as I can tell, there is no way to get this data over the API.

What we’d like to write is a Prometheus Exporter that pulls this data on a per-fleet basis so that we can visualize this data over time.

---

<div class="post-metadata">

**Author:** ![mpous](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/mpous/32/4742_2.png) [@mpous](https://forums.balena.io/u/mpous)\
**Post date:** [March 6, 2023, 10:25am UTC](https://forums.balena.io/t/fleet-statistics-over-api/367049/2 "2023-03-06T10:25:43Z")

</div>

Hello @vpetersson everything that appears on the balenaCloud dashboard might be available through API.

Did you check this? [Resources - Balena Documentation](https://docs.balena.io/reference/api/resources/fleet/)

---

<div class="post-metadata">

**Author:** ![mpous](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/mpous/32/4742_2.png) [@mpous](https://forums.balena.io/u/mpous)\
**Post date:** [March 6, 2023, 10:32am UTC](https://forums.balena.io/t/fleet-statistics-over-api/367049/3 "2023-03-06T10:32:59Z")

</div>

BTW did you check this? [Monitoring the edge with Prometheus pt. 1](https://blog.balena.io/monitoring-the-edge-with-prometheus-pt-1/)

or this block? [GitHub - DynamicDevices/prometheus-exporter: Balena Block providing 'node-exporter' metrics for a device/app to Prometheus](https://github.com/DynamicDevices/prometheus-exporter)

---

<div class="post-metadata">

**Author:** ![mpous](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/mpous/32/4742_2.png) [@mpous](https://forums.balena.io/u/mpous)\
**Post date:** [March 6, 2023, 11:11am UTC](https://forums.balena.io/t/fleet-statistics-over-api/367049/5 "2023-03-06T11:11:56Z")

</div>

Finally there is this feature request on the balena roadmap → [Provide fleet metrics · Balena Roadmap](https://roadmap.balena.io/posts/13/provide-fleet-metrics)

Feel free to add here your ideas @vpetersson 🙂

---

<div class="post-metadata">

**Author:** ![vpetersson](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/vpetersson/32/4991_2.png) [@vpetersson](https://forums.balena.io/u/vpetersson)\
**Post date:** [March 6, 2023, 11:49am UTC](https://forums.balena.io/t/fleet-statistics-over-api/367049/7 "2023-03-06T11:49:12Z")

</div>

@mpous Thanks. The previous ones are for _device_ perfomance metrics. I don’t really need that. What we need is metrics on the actual fleets.

The [Provide fleet metrics · Balena Roadmap](https://roadmap.balena.io/posts/13/provide-fleet-metrics) link is more like it but what I need is a lot more basic. There’s already an end-point for [Getting Fleet by ID](https://docs.balena.io/reference/api/resources/fleet/#app-by-id), which yields something like this:

```bash
> $ curl -s -X GET \ "https://api.balena-cloud.com/v6/application(xxx)" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer [redacted]" | jq
{
  "d": [
    {
      "id": [redacted],
      "organization": {
        "__id": [redacted],
        "__deferred": {
          "uri": "/v6/organization(@id)?@id=[redacted]"
        }
      },
      "actor": [redacted],
      "app_name": "anthias-pi3",
      "slug": "screenly_ose/anthias-pi3",
      "should_be_running__release": {
        "__id": [redacted],
        "__deferred": {
          "uri": "/v6/release(@id)?@id=[redacted]"
        }
      },
      "application_type": {
        "__id": 5,
        "__deferred": {
          "uri": "/v6/application_type(@id)?@id=5"
        }
      },
      "is_for__device_type": {
        "__id": 58,
        "__deferred": {
          "uri": "/v6/device_type(@id)?@id=58"
        }
      },
      "should_track_latest_release": true,
      "is_accessible_by_support_until__date": null,
      "is_public": true,
      "is_host": false,
      "is_archived": false,
      "is_discoverable": true,
      "is_stored_at__repository_url": "https://github.com/Screenly/Anthias",
      "created_at": "2022-09-28T14:49:27.848Z",
      "uuid": "[redacted]",
      "is_of__class": "fleet",
      "__metadata": {
        "uri": "/v6/application(@id)?@id=[redacted]"
      }
    }
  ]
}

```

If this API call could be extended to also include fleet information (e.g. the count of each device in the following states `Online|Config|Updating|Offline|Post prov|Inactive`, it would be trivial to write a Prometheus Exporter for this.

Also, we’d happily open source this exporter.

---

<div class="post-metadata">

**Author:** ![mpous](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/mpous/32/4742_2.png) [@mpous](https://forums.balena.io/u/mpous)\
**Post date:** [March 9, 2023, 12:08pm UTC](https://forums.balena.io/t/fleet-statistics-over-api/367049/9 "2023-03-09T12:08:59Z")

</div>

@vpetersson feel free to add this on the [https://roadmap.balena.io](https://roadmap.balena.io) so we can internally analyze it 🙂

---

<div class="post-metadata">

**Author:** ![vpetersson](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/vpetersson/32/4991_2.png) [@vpetersson](https://forums.balena.io/u/vpetersson)\
**Post date:** [March 9, 2023, 12:23pm UTC](https://forums.balena.io/t/fleet-statistics-over-api/367049/10 "2023-03-09T12:23:36Z")

</div>

> [@vpetersson](#):
>
> Online|Config|Updating|Offline|Post prov|Inactive

Done: [Fleet Statistics over API · Balena Roadmap](https://roadmap.balena.io/posts/62/fleet-statistics-over-api)

---

<div class="post-metadata">

**Author:** ![mpous](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/mpous/32/4742_2.png) [@mpous](https://forums.balena.io/u/mpous)\
**Post date:** [March 9, 2023, 12:54pm UTC](https://forums.balena.io/t/fleet-statistics-over-api/367049/11 "2023-03-09T12:54:52Z")

</div>

BTW @vpetersson find here an example (thanks @fisehara ) of how you can get the `online` devices from a fleet with this query.

`api.balena-cloud.com/v6/application(id)?$expand=owns__device/$count($filter=is_online eq true)`

let us know if you can proceed from here!

---

<div class="post-metadata">

**Author:** ![vpetersson](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/vpetersson/32/4991_2.png) [@vpetersson](https://forums.balena.io/u/vpetersson)\
**Post date:** [March 9, 2023, 3:06pm UTC](https://forums.balena.io/t/fleet-statistics-over-api/367049/13 "2023-03-09T15:06:44Z")

</div>

Nice! Can you provide a link to more documentation on this or is it undocumented?

---

<div class="post-metadata">

**Author:** ![vpetersson](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/vpetersson/32/4991_2.png) [@vpetersson](https://forums.balena.io/u/vpetersson)\
**Post date:** [March 9, 2023, 6:38pm UTC](https://forums.balena.io/t/fleet-statistics-over-api/367049/14 "2023-03-09T18:38:14Z")

</div>

Work in progress, but here’s the alpha version:

> **[GitHub - Screenly/balena-prometheus-exporter: Prometheus metric exporter for...](https://github.com/Screenly/balena-prometheus-exporter)**
>
> Prometheus metric exporter for Balena. Contribute to Screenly/balena-prometheus-exporter development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![mpous](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/mpous/32/4742_2.png) [@mpous](https://forums.balena.io/u/mpous)\
**Post date:** [March 21, 2023, 10:40am UTC](https://forums.balena.io/t/fleet-statistics-over-api/367049/17 "2023-03-21T10:40:58Z")

</div>

Thank you for sharing @vpetersson i will try to test myself!

Did the query worked for you?

---

<div class="post-metadata">

**Author:** ![vpetersson](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/vpetersson/32/4991_2.png) [@vpetersson](https://forums.balena.io/u/vpetersson)\
**Post date:** [March 27, 2023, 6:38pm UTC](https://forums.balena.io/t/fleet-statistics-over-api/367049/19 "2023-03-27T18:38:54Z")

</div>

Yes. It’s not perfect, but gets the job done for now. I’ve had it running for almost two weeks now without issues.
