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

Move metrics export properties #30381

Closed
mhalbritter opened this issue Mar 23, 2022 · 0 comments
Closed

Move metrics export properties #30381

mhalbritter opened this issue Mar 23, 2022 · 0 comments
Assignees
Labels
status: noteworthy A noteworthy issue to call out in the release notes type: enhancement A general enhancement
Milestone

Comments

@mhalbritter
Copy link
Contributor

mhalbritter commented Mar 23, 2022

While integrating Micrometer tracing (see #30156) we found that our properties structure is not ideal for integrating tracing. Take for example Wavefront: The current configuration properties are located under management.metrics.export.wavefront. We now need some settings of them for tracing (Wavefront supports both metrics and traces). Creating a separate management.tracing.wavefront seems wrong, as the concrete product is more important in the structure than if it's metrics or tracing. Additionally we need to share properties between Wavefront metrics and tracing.

We should therefore move the properties from the format management.metrics.export.<product> to management.<product>.metrics.export. This will allow us to add a separate management.<product>.tracing section to the properties and even share some configuration options between metrics and tracing (like the backend url, sender configuration, etc.)

The old properties will be marked as replaced and lead to an error when using the spring-boot-properties-migrator.

The following properties will be affected:

AppOptics

  • management.metrics.export.appoptics -> management.appoptics.metrics.export

Atlas

  • management.metrics.export.atlas -> management.atlas.metrics.export

Datadog

  • management.metrics.export.datadog -> management.datadog.metrics.export

Dynatrace

  • management.metrics.export.dynatrace -> management.dynatrace.metrics.export

Elastic

  • management.metrics.export.elastic -> management.elastic.metrics.export

Ganglia

  • management.metrics.export.ganglia -> management.ganglia.metrics.export

Graphite

  • management.metrics.export.graphite -> management.graphite.metrics.export

Humio

  • management.metrics.export.humio -> management.humio.metrics.export

Influx

  • management.metrics.export.influx -> management.influx.metrics.export

JMX

  • management.metrics.export.jmx -> management.jmx.metrics.export

Kairos

  • management.metrics.export.kairos -> management.kairos.metrics.export

NewRelic

  • management.metrics.export.newrelic -> management.newrelic.metrics.export

Prometheus

  • management.metrics.export.prometheus -> management.prometheus.metrics.export

SignalFx

  • management.metrics.export.signalfx -> management.signalfx.metrics.export

Simple

  • management.metrics.export.simple -> management.simple.metrics.export

Stackdriver

  • management.metrics.export.stackdriver -> management.stackdriver.metrics.export

Statsd

  • management.metrics.export.statsd -> management.statsd.metrics.export

Wavefront

  • management.metrics.export.wavefront -> management.wavefront.metrics.export

Other

  • management.metrics.export.defaults.enabled -> management.defaults.metrics.export.enabled
@mhalbritter mhalbritter added type: enhancement A general enhancement status: noteworthy A noteworthy issue to call out in the release notes labels Mar 23, 2022
@mhalbritter mhalbritter added this to the 3.0.x milestone Mar 23, 2022
@mhalbritter mhalbritter self-assigned this Mar 23, 2022
mhalbritter added a commit to mhalbritter/spring-boot that referenced this issue Mar 23, 2022
- Moved from 'management.metrics.export.<product>' to 'management.<product>.metrics.export'
- The default enabled property moved from 'management.metrics.export.defaults.enabled' to 'management.defaults.metrics.export.enabled'

See spring-projectsgh-30381
mhalbritter added a commit to mhalbritter/spring-boot that referenced this issue Mar 23, 2022
mhalbritter added a commit to mhalbritter/spring-boot that referenced this issue Mar 23, 2022
mhalbritter added a commit to mhalbritter/spring-boot that referenced this issue Mar 24, 2022
mhalbritter added a commit to mhalbritter/spring-boot that referenced this issue Mar 24, 2022
- Moved from 'management.metrics.export.<product>' to 'management.<product>.metrics.export'
- The default enabled property moved from 'management.metrics.export.defaults.enabled' to 'management.defaults.metrics.export.enabled'

See spring-projectsgh-30381
mhalbritter added a commit to mhalbritter/spring-boot that referenced this issue Mar 24, 2022
mhalbritter added a commit to mhalbritter/spring-boot that referenced this issue Mar 24, 2022
mhalbritter added a commit to mhalbritter/spring-boot that referenced this issue Mar 24, 2022
mhalbritter added a commit to mhalbritter/spring-boot that referenced this issue Mar 24, 2022
mhalbritter added a commit to mhalbritter/spring-boot that referenced this issue Mar 25, 2022
- Moved from 'management.metrics.export.<product>' to 'management.<product>.metrics.export'
- The default enabled property moved from 'management.metrics.export.defaults.enabled' to 'management.defaults.metrics.export.enabled'

See spring-projectsgh-30381
@mhalbritter mhalbritter modified the milestones: 3.0.x, 3.0.0-M3 Mar 28, 2022
ikhoon added a commit to ikhoon/armeria that referenced this issue Dec 14, 2022
Motivation:

Spring 6 and Spring Boot 3 have been released.
https://spring.io/blog/2022/11/24/spring-boot-3-0-goes-ga

Note that the added modules will not be published until we refactor
`spring-boot2-autoconfigure` internals.

Modifications:

- Add Spring Boot 3 integrations symmetirically with Spring Boot 2.
  - `publish` flags are not added intentionally.
- Set the release target for Spring Boot 3 and examples to Java 17.
- Add `PortUtil` and migrate off `SocketUtils`.
- Migrate AutoConfiguration in spring.factories to
  `o.s.b.a.AutoConfiguration.imports`.
  https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.7-Release-Notes#new-autoconfiguration-annotation
- Change `management.metrics.export.defaults.enabled` to
  `management.promethus.metrics.export.enabled` in tests
  spring-projects/spring-boot#30381
- Fix compile errors in the webflux integration
- Migrate moved `LocalServerPort` and `LocalManagementPort`.

Depedencies:

- Add Spring Boot 3.0.0
- Add `hibernate-validator 8.0.0
- Bump Micrometer into 1.10.2
- Add Jakarta dependencies
  - jakarta-inject 2.0.1
  - jakarta-validation 3.0.2
  - jakarta-websocket 2.1.0

Result:

You can now use Spring Boot 3 with Armeria.
ikhoon added a commit to ikhoon/armeria that referenced this issue Dec 14, 2022
Motivation:

Spring 6 and Spring Boot 3 have been released.
https://spring.io/blog/2022/11/24/spring-boot-3-0-goes-ga

Note that the added modules will not be published until we refactor
`spring-boot2-autoconfigure` internals.

Modifications:

- Add Spring Boot 3 integrations symmetirically with Spring Boot 2.
  - `publish` flags are not added intentionally.
- Set the release target for Spring Boot 3 and examples to Java 17.
- Add `PortUtil` and migrate off `SocketUtils`.
- Migrate AutoConfiguration in spring.factories to
  `o.s.b.a.AutoConfiguration.imports`.
  https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.7-Release-Notes#new-autoconfiguration-annotation
- Change `management.metrics.export.defaults.enabled` to
  `management.promethus.metrics.export.enabled` in tests
  spring-projects/spring-boot#30381
- Fix compile errors in the webflux integration
- Migrate moved `LocalServerPort` and `LocalManagementPort`.

Depedencies:

- Add Spring Boot 3.0.0
- Add `hibernate-validator 8.0.0
- Bump Micrometer into 1.10.2
- Add Jakarta dependencies
  - jakarta-inject 2.0.1
  - jakarta-validation 3.0.2
  - jakarta-websocket 2.1.0

Result:

Experimentally set up Spring Boot 3 integrations.
ikhoon added a commit to ikhoon/armeria that referenced this issue Dec 14, 2022
Motivation:

Spring 6 and Spring Boot 3 have been released.
https://spring.io/blog/2022/11/24/spring-boot-3-0-goes-ga

Note that the added modules will not be published until we refactor
`spring-boot2-autoconfigure` internals.

Modifications:

- Add Spring Boot 3 integrations symmetirically with Spring Boot 2.
  - `publish` flags are not added intentionally.
- Set the release target for Spring Boot 3 and examples to Java 17.
- Add `PortUtil` and migrate off `SocketUtils`.
- Migrate AutoConfiguration in spring.factories to
  `o.s.b.a.AutoConfiguration.imports`.
  https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.7-Release-Notes#new-autoconfiguration-annotation
- Change `management.metrics.export.defaults.enabled` to
  `management.promethus.metrics.export.enabled` in tests
  spring-projects/spring-boot#30381
- Fix compile errors in the webflux integration
- Migrate moved `LocalServerPort` and `LocalManagementPort`.

Depedencies:

- Add Spring Boot 3.0.0
- Add `hibernate-validator 8.0.0
- Bump Micrometer into 1.10.2
- Add Jakarta dependencies
  - jakarta-inject 2.0.1
  - jakarta-validation 3.0.2
  - jakarta-websocket 2.1.0

Result:

Experimentally set up Spring Boot 3 integrations.
ikhoon added a commit to line/armeria that referenced this issue Mar 28, 2023
Motivation:

Spring 6 and Spring Boot 3 have been released.
https://spring.io/blog/2022/11/24/spring-boot-3-0-goes-ga

Modifications:

- New modules are added:
  - spring-boot3-{autoconfigure,starter}
  - spring-boot3-actuator-{autoconfigure,starter}
  - spring-boot3-webflux-{autoconfigure,starter}
  - tomcat10
- Use Java 17 for Spring Boot 3 module, Spring examples and integration tests.
- Use Java 11 for Tomcat 10 module.
- Migrate removed or changed API
  - Use Jakarta EE 9 APIs (`jakarta.*`) instead of EE 8 (`javax.*`).
  - Add `PortUtil` and migrate off `SocketUtils`.
  - Migrate AutoConfiguration in `META-INF/spring.factories` to `o.s.b.a.AutoConfiguration.imports`. https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.7-Release-Notes#new-autoconfiguration-annotation
  - Change `management.metrics.export.defaults.enabled` to `management.promethus.metrics.export.enabled` in tests spring-projects/spring-boot#30381
  - Fix compile errors in the Webflux integration
    - `AbstractServerHttpRequest.getMethod()` became non-default method.
  - Migrate relocated `LocalServerPort` and `LocalManagementPort`.
    - `org.springframework.boot.web.server.LocalServerPort` -> `org.springframework.boot.test.web.server.LocalServerPort`


Dependencies:

- Add Spring Boot 3.0.2
- Add hibernate-validator 8.0.0
- Bump Micrometer into 1.10.2
- Add Jakarta dependencies
  - jakarta-inject 2.0.1
  - jakarta-validation 3.0.2
  - jakarta-websocket 2.1.0

Result:

You can now use Spring Boot 3 with Armeria.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: noteworthy A noteworthy issue to call out in the release notes type: enhancement A general enhancement
Projects
None yet
Development

No branches or pull requests

1 participant