camunda / camunda-bpm-platform

Flexible framework for workflow and decision automation with BPMN and DMN. Integration with Quarkus, Spring, Spring Boot, CDI.
https://camunda.com/
Apache License 2.0
4.07k stars 1.54k forks source link

Remove Easy Telemetry #4483

Closed yanavasileva closed 1 day ago

yanavasileva commented 1 month ago

Acceptance Criteria (Required on creation)

  1. Engine
    • [x] ProcessEngineConfigurationImpl - Remove configuration properties and related code that are not needed anymore. won't start up after an update
    • [x] BootstrapEngineCommand - don't add telemetry lock and property
      • [x] for updated instance, the database property/ies will be left there and they won't be used. Do we want to remove it?
    • [x] TelemetryReporter and TelemetrySendingTask
      • Remove sending functionality. Keep general code so it can be used for fetching the diagnostic data without the interval to send HTTP requests.
    • [x] IsTelemetryEnabledCmd
      • deprecate Java and REST API, so whoever uses it knows that is no longer function and can remove it but their code won't brake
      • empty out command, should always return false
    • [x] TelemetryConfigureCmd
      • deprecate Java and REST API, so whoever uses it knows that is no longer function and can remove it but their code won't brake
      • empty out command, should do nothing
    • [x] connect dependency - remove it and check if shading is working as expected
    • [x] Loggers - remove all logging that is not used any longer
  2. REST API
    • [x] deprecate and empty out
    • [x] remove tests
  3. Distros, javaee, connect plugin
    • [x] remove connect process engine plugin used for telemetryHttpConnector (sending HTTP requests for telemetry) and the a
    • [x] exclude connect dependency
      • if users use the dependency for other reasons, they can add the dependency themselves (we can consider adding this to the migration guide)
  4. Tests (CE and EE)
    • [x] tests configuration files - remove telemetry endpoint property
    • [x] tests - remove sending telemetry tests but leave and ensure diagnostic data API is tested
    • [x] wiremock - remove where not needed anymore
  5. Docs
    • [x] Configuration pages - remove telemetry properties: process engine, quarkus, spring boot
    • [x] Telemetry page - leave only collected data that can be used for the diagnostics, maybe rename/move the page. For transparency we can add that feature has been removed.
    • [x] Migration page - document any breaking changes
      • feature removed
      • configuration properties removed
      • API deprecated and emptied
      • connect dependency removal
  6. Optional
    • TelemetryReporter and TelemetrySendingTask
      • rename the classes to move away from telemetry as they will be used only for fetching diagnostic data
      • remove the TimerTask as it is not needed anymore

Hints

Links

Breakdown

### Pull Requests
- [ ] https://github.com/camunda/camunda-bpm-platform/pull/4486
- [ ] https://github.com/camunda/camunda-bpm-platform-ee/pull/962
- [ ] https://github.com/camunda/camunda-docs-manual/pull/1661
- [ ] https://github.com/camunda/camunda-bpm-platform/pull/4544
yanavasileva commented 1 month ago

To remove, no longer used: org.camunda.bpm.engine.impl.telemetry.dto.InternalsImpl.telemetryEnabled https://github.com/camunda/camunda-bpm-platform/blob/58a68573bae5053b88a0a3b89c82dca7a459a2a5/engine/src/main/java/org/camunda/bpm/engine/impl/telemetry/dto/InternalsImpl.java#L55 It's not exposed in public Java API and not available in REST API at all.

yanavasileva commented 1 month ago

❓ Do we need migration test?

❓ If telemetry reporter is removed, do we need special handling for diagnostics endpoint?

yanavasileva commented 1 month ago

Existing database will have the telemetry.lock so we don't need to keep it.

yanavasileva commented 1 month ago

Docs PR is still work in progress.

mboskamp commented 4 days ago

https://github.com/camunda/camunda-bpm-platform/pull/4544 is ready for merge.