Thanks for the feedback, Kylie!
service.environment
:
If the same service runs in different environments (production, staging, QA, development, etc.), the environment can identify other instances of the same service. Can also group services and applications from the same environment.
Hm. What I'm thinking about is a kind of deployment that happens within an "environment". Imagine you are wanting to deploy a new version of your service to your production environment. Rather than completely replace all instances at once, you deploy just an instance or handful, confirm it's working, then proceed to replace the remainder. The old deployment and the current one both exist in the "production" environment. (Here's a write up: "What is canary deployment?")
(There does happen to be another deployment strategy, "blue green deployments", that one might describe as having separate environments, like "production blue" and "production green". (I mixed the two strategies in my example JSON earlier.))
Being able to filter on canary status would be immensely useful. There are probably a couple other facts of deployment that would be useful to log.
I tried finding an appropriate field by going through all the field sets in the ECS reference, but I couldn't find any real matches. The most related set seemed to be service
, but the semantics of that lead me to think that values in that set should be referring to the service as a whole, rather than the deployment status of a single instance of the service. service.state
is very vaguely described, so it seems a possibility, but again doesn't seem appropriate for node-specific info.
There are mentions of a coming node
field set, with reference to "node roles", but "role" here, with the examples of "master", "data", "background task", and "ui", does not seem to fit. A node.state
might work, but I think node.state
is probably better left to other uses (if not meant to be an array).
My best guess for most appropriate place (barring there being a need for an entire deployment-related field set), I think would be maybe node.deployment_role
with expected values like "normal" and "canary".