[
https://issues.apache.org/jira/browse/CASSSIDECAR-490?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Isaac Reath updated CASSSIDECAR-490:
------------------------------------
Description:
Today, Sidecar provides API endpoints (/api/v1/cassandra/ring and
/api/v1/cassandra/ring/keyspaces/:keyspace and `/api/v1/cassandra/gossip`) to
access the current ring health from the perspective of the Cassandra instance
the sidecar is configured against. This gives consumers a polling API to
understand the state of the cluster from the perspective of one node at any
given time. Gathering the full ring-health matrix from these per-node endpoints
presents a number of challenges:
- Aggregators must be ring-aware, tracking when nodes join or leave the
cluster so they know which nodes to start or stop polling.
- HTTP connection establishment may be unreliable under heavy load, so ring
health is hardest to observe from exactly the node under stress.
- Retry logic to aggregate per-node ring health across the cluster is complex
and error-prone.
To close these gaps, this ticket proposes adding ring-health publishing to
Sidecar as an alternative to consumers polling the ring-health API. Each
Sidecar instance will periodically push its local node's view of ring health to
downstream consumers. This adds a new pluggable interface for publishing ring
health, with an initial Kafka-based implementation.
was:
Today, Sidecar provides API endpoints (/api/v1/cassandra/ring and
/api/v1/cassandra/ring/keyspaces/:keyspace) to access the current ring health
from the perspective of the Cassandra instance the sidecar is configured
against. This gives consumers a polling API to understand the state of the
cluster from the perspective of one node at any given time. Gathering the full
ring-health matrix from these per-node endpoints presents a number of
challenges:
- Aggregators must be ring-aware, tracking when nodes join or leave the
cluster so they know which nodes to start or stop polling.
- HTTP connection establishment may be unreliable under heavy load, so ring
health is hardest to observe from exactly the node under stress.
- Retry logic to aggregate per-node ring health across the cluster is complex
and error-prone.
To close these gaps, this ticket proposes adding ring-health publishing to
Sidecar as an alternative to consumers polling the ring-health API. Each
Sidecar instance will periodically push its local node's view of ring health to
downstream consumers. This adds a new pluggable interface for publishing ring
health, with an initial Kafka-based implementation.
> Add support for publishing ring health to an external system
> ------------------------------------------------------------
>
> Key: CASSSIDECAR-490
> URL: https://issues.apache.org/jira/browse/CASSSIDECAR-490
> Project: Sidecar for Apache Cassandra
> Issue Type: Improvement
> Components: Observability
> Reporter: Isaac Reath
> Assignee: Isaac Reath
> Priority: Normal
>
> Today, Sidecar provides API endpoints (/api/v1/cassandra/ring and
> /api/v1/cassandra/ring/keyspaces/:keyspace and `/api/v1/cassandra/gossip`) to
> access the current ring health from the perspective of the Cassandra instance
> the sidecar is configured against. This gives consumers a polling API to
> understand the state of the cluster from the perspective of one node at any
> given time. Gathering the full ring-health matrix from these per-node
> endpoints presents a number of challenges:
> - Aggregators must be ring-aware, tracking when nodes join or leave the
> cluster so they know which nodes to start or stop polling.
> - HTTP connection establishment may be unreliable under heavy load, so ring
> health is hardest to observe from exactly the node under stress.
> - Retry logic to aggregate per-node ring health across the cluster is
> complex and error-prone.
> To close these gaps, this ticket proposes adding ring-health publishing to
> Sidecar as an alternative to consumers polling the ring-health API. Each
> Sidecar instance will periodically push its local node's view of ring health
> to downstream consumers. This adds a new pluggable interface for publishing
> ring health, with an initial Kafka-based implementation.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]