The HelixML API is a part of the Helix project, which is a configurable, extensible, and scalable framework for building microservices. The Helix API provides endpoints for interacting with the Helix manager and performing various operations related to managing and monitoring microservices.
Here are some of the possible options for interacting with the HelixML API and examples for each option:
- Querying the status of a cluster: You can use the
/clusters
endpoint to get information about the current state of a cluster, including the list of nodes, their status, and the distribution of resources. Here’s an example cURL request:
curl -X GET http://localhost:18273/clusters
- Getting the configuration of a cluster: You can use the
/config
endpoint to get the current configuration of a cluster, including the resource allocation and partitioning. Here’s an example cURL request:
curl -X GET http://localhost:18273/config
- Updating the configuration of a cluster: You can use the
/config
endpoint to update the current configuration of a cluster. Here’s an example cURL request that updates the configuration of a cluster with a new resource allocation:
curl -X PUT http://localhost:18273/config \
-H 'Content-Type: application/json' \
-d '{
"resourceAllocation": {
"cpu": 2,
"memory": 4096
}
}'
- Monitoring the performance of a cluster: You can use the
/metrics
endpoint to get metrics about the performance of a cluster, including the resource usage and throughput. Here’s an example cURL request:
curl -X GET http://localhost:18273/metrics
- Managing the lifecycle of a microservice: You can use the
/services
endpoint to manage the lifecycle of a microservice, including starting, stopping, and scaling the service. Here’s an example cURL request that scales a microservice to 3 instances:
curl -X PUT http://localhost:18273/services/my-service/instances \
-H 'Content-Type: application/json' \
-d '3'
These are just a few examples of the many options available in the HelixML API. For more information, you can refer to the official Helix documentation at https://helix-tech.github.io/helix/userguide/.
Sources:
- Helix documentation: https://helix-tech.github.io/helix/userguide/
- Prometheus API documentation: https://prometheus.io/docs/prometheus/latest/querying/api
- Envoy RDS documentation: https://www.envoyproxy.io/docs/envoy/v1.11.2/configuration/http_conn_man/rds
- Consul discovery chain documentation: https://developer.hashicorp.com/consul/docs/connect/l7-traffic/discovery-chain
- Full API lifecycle management documentation: https://developers.redhat.com/blog/2019/02/25/full-api-lifecycle-management-a-primer
- Open Policy Agent REST API documentation: https://www.openpolicyagent.org/docs/latest/rest-api
- API performance monitoring documentation: https://sweetcode.io/api-performance-monitoring-an-introduction
- Grafana Tempo documentation: https://grafana.com/docs/tempo/latest/configuration/grafana-agent/tail-based-sampling
- Grafana Agent API documentation: https://grafana.com/docs/agent/latest/static/api
- Envoy CDS documentation: https://www.envoyproxy.io/docs/envoy/v1.11.2/configuration/cluster_manager/cds
- GitLab DORA metrics documentation: https://docs.gitlab.com/ee/api/dora/metrics.html