endpoint.{relation}.joined never set
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical Juju |
Incomplete
|
High
|
Unassigned |
Bug Description
Juju Version 2.8.8
I am trying to setup a CMR between libvirt exporter and prometheus
promethues-
provides:
scrape:
interface: http
prometheus in the "lma" model requires the following:
"requires":
"target":
"interface": "http"
In the lma model I run:
juju expose prometheus
juju offer lma.prometheus:
In the openstack model I run:
juju consume admin/lma.
juju add-relation prometheus-
The flag `endpoint.
https:/
In the prometheus-
2021-10-05 07:28:42 INFO juju.worker.
2021-10-05 07:28:42 INFO juju.worker.
2021-10-05 07:28:42 INFO juju.worker.
2021-10-05 07:32:11 INFO juju-log Reactive main running for hook update-status
2021-10-05 07:32:11 DEBUG juju-log tracer>
tracer: set flag config.
tracer: ++ queue handler hooks/relations
tracer: ++ queue handler hooks/relations
2021-10-05 07:32:11 DEBUG juju-log tracer: set flag config.
2021-10-05 07:32:11 DEBUG juju-log tracer: set flag config.
2021-10-05 07:32:11 DEBUG juju-log tracer: set flag config.
2021-10-05 07:32:11 DEBUG juju-log tracer: set flag config.
2021-10-05 07:32:11 DEBUG juju-log tracer: set flag config.
2021-10-05 07:32:11 DEBUG juju-log tracer: set flag config.
2021-10-05 07:32:11 INFO juju-log Initializing Snap Layer
2021-10-05 07:32:11 DEBUG update-status none
2021-10-05 07:32:11 INFO juju-log Initializing Leadership Layer (is follower)
2021-10-05 07:32:11 DEBUG juju-log tracer>
tracer: starting handler dispatch, 20 flags set
tracer: set flag config.
tracer: set flag config.
tracer: set flag config.
tracer: set flag config.
tracer: set flag config.
tracer: set flag config.
tracer: set flag config.
tracer: set flag endpoint.
tracer: set flag endpoint.
tracer: set flag endpoint.
tracer: set flag endpoint.
tracer: set flag endpoint.
tracer: set flag endpoint.
tracer: set flag juju-info.available
tracer: set flag juju-info.connected
tracer: set flag libvirt-
tracer: set flag libvirt-
tracer: set flag snap.installed.core
tracer: set flag snap.installed.
tracer: set flag snap.refresh.set
2021-10-05 07:32:11 DEBUG juju-log tracer: hooks phase, 0 handlers queued
2021-10-05 07:32:11 DEBUG juju-log tracer>
tracer: main dispatch loop, 2 handlers queued
tracer: ++ queue handler hooks/relations
tracer: ++ queue handler hooks/relations
2021-10-05 07:32:11 INFO juju-log Invoking reactive handler: hooks/relations
2021-10-05 07:32:11 INFO juju-log Invoking reactive handler: hooks/relations
2021-10-05 07:32:11 INFO juju.worker.
After the joined this https:/
I don't think this is a Juju bug.
The `endpoint. {endpoint_ name}.joined` flag is set[1] based on whether there are any units visible on the relation[2], which would be true after the relevant -relation-joined hook was fired. In the log above, I see the line:
2021-10-05 07:28:42 INFO juju.worker. uniter. operation runhook.go:145 skipped "scrape- relation- created" hook (missing)
which indicates that the -relation-created hook was fired (but skipped). However, I don't see any subsequent indication that any -relation-joined hooks were fired. I would generally only expect to see this if the application on the other side of the relation somehow had 0 units / scale, or maybe if it failed during provisioning or one of the early hooks.
I'm also a bit confused why this is using the "http" interface protocol for a Prometheus scrape target rather than the "prometheus" interface protocol[3].
[1]: https:/ /github. com/juju- solutions/ charms. reactive/ blob/master/ charms/ reactive/ endpoints. py#L229
[2]: https:/ /github. com/juju- solutions/ charms. reactive/ blob/master/ charms/ reactive/ endpoints. py#L182
[3]: https:/ /git.launchpad. net/interface- prometheus