Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC] service.environment field #891

Merged
merged 5 commits into from
Jul 23, 2020
Merged

[RFC] service.environment field #891

merged 5 commits into from
Jul 23, 2020

Conversation

cyrille-leclerc
Copy link
Contributor

Proposal to adopt the service.environment attribute to qualify the environment from which an event is emitted (e.g. production, staging, qa, dev).

@cyrille-leclerc cyrille-leclerc changed the title [RFC] service.environment attribute [RFC] service.environment field Jul 21, 2020
webmat
webmat previously approved these changes Jul 23, 2020
Copy link
Contributor

@webmat webmat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for opening this, Cyrille!

I agree this should go through the RFC process, even if at this time your proposal is only about adding one field. Reasons why I think the RFC is appropriate are 1) that Beats and APM appear to use different fields for capturing the environment and 2) there's been discussions in the past going in different directions than this, which you've noted in the concerns section 👍

There's wide agreement that capturing environment information is appropriate for ECS. So I have one procedural comment, but I'll adjust this when merging.

We'll get into all the requirements and deeper discussions at the other stages 💬

rfcs/0001-rfc-environment.md Outdated Show resolved Hide resolved
Eric won the race for 0001 :-)
@webmat
Copy link
Contributor

webmat commented Jul 23, 2020

@cyrille-leclerc @roncohen

For the stage 1 proposal I'd like the RFC to be adjusted in a few ways.

Could you also add a link to #508 in the references? It's not only about environments, but I think it's also relevant.

Please rephrase the proposal a bit more generally, as a proposal to add support for capturing environment information in ECS. APM's current approach is of course a top contender, since it's already in use. But I'd like the proposal to also consider the more flexible approach discussed in #268. In this proposal, the contributor suggests creating this as a field set with a few fields. In the simplest cases where a user has only 2 environments, they could use simply environment.type: production|staging. But this approach opens up much more flexibility for other situations. Common examples are production deployments in different settings (multi-tenancy, different locations like "on prem" vs "cloud", different purposes like "main" vs "canary"), etc.

I'd like to loop in someone from the Cloud team and see if more robust support for environment details would be interesting to them.

@ebeahan ebeahan deleted the cyrille-leclerc-patch-1 branch July 27, 2020 15:26
@webmat
Copy link
Contributor

webmat commented Aug 24, 2020

Great additional resources, thanks for dropping these notes here.

When do you think you can open the PR for the next stage?

@cyrille-leclerc
Copy link
Contributor Author

When do you think you can open the PR for the next stage?

I may have changed my mind brainstorming on open-telemetry/opentelemetry-specification#752 .

I'm wondering if we should support defining the "deployment environment" at multiple level: on the host itself and on the "deployed service".

I would like to discuss this with @sorantis

@sorantis
Copy link

Typically orgs/teams use custom tags for such information, which should be accomplished with labels available in the base ECS reference.

@felixbarny
Copy link
Member

@cyrille-leclerc do other observability teams plan to adopt service.environment?

@cyrille-leclerc
Copy link
Contributor Author

@felixbarny the standardisation of the "environment" qualifier is moving slowly.

Last time I discussed with @sorantis, we saw that

  • most beats (metricsbeat, filebeat) use custom tags for the moment,
  • it's not easy for infrastructure to talk of "environment=prod/staging/..." as infrastructure is often multi tenant
  • Using "service.*" iis often not what people are looking at to characterize their infrastructure.

Moreover, for application logs, we plan to solve the problem of characterising the environment having the application agent being deeply integrated with filebeat.

I have recently discussed this ECS RFC with @webmat , we are likely to just standardise at the application layer, excluding the infrastructure layer for the moment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants