Currently it is not possible to enable the alertmanager module when cortex is run as a single binary. This is caused by conflicts under the /api/prom route.
One option I would like to suggest to rectify this change is updating the routing scheme for the alertmanager to fall under /alertmanager. I think this format would make more sense overall. I also think the prometheus api should exist under /prometheus. I think this naming scheme would make more sense for two reasons:
/api/prom/api/* routes seem clunky to me with the repetition of api
/<service>/api/* provides a sensible api scheme that reflects the underlying endpoints. This would also allow for endpoints with the same routes to exist in the same binary. For instance both the alertmanager and prometheus api have a /api/v1/alerts endpoint.
The alternative would be matching /api/prom with a /api/alert route, or something along those lines. I think either approach would work. Although I think the /alertmanager route prefix seems better to me.
Currently it is not possible to enable the alertmanager module when cortex is run as a single binary. This is caused by conflicts under the
/api/promroute.One option I would like to suggest to rectify this change is updating the routing scheme for the alertmanager to fall under
/alertmanager. I think this format would make more sense overall. I also think the prometheus api should exist under/prometheus. I think this naming scheme would make more sense for two reasons:/api/prom/api/*routes seem clunky to me with the repetition ofapi/<service>/api/*provides a sensible api scheme that reflects the underlying endpoints. This would also allow for endpoints with the same routes to exist in the same binary. For instance both the alertmanager and prometheus api have a/api/v1/alertsendpoint.The alternative would be matching
/api/promwith a/api/alertroute, or something along those lines. I think either approach would work. Although I think the/alertmanagerroute prefix seems better to me.