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

Remove Easy Telemetry #4483

Closed
4 tasks done
Tracked by #4234
yanavasileva opened this issue Jul 8, 2024 · 5 comments
Closed
4 tasks done
Tracked by #4234

Remove Easy Telemetry #4483

yanavasileva opened this issue Jul 8, 2024 · 5 comments
Assignees
Labels
scope:core-api Changes to the core API: engine, dmn-engine, feel-engine, REST API, OpenAPI type:subtask Issues that are subtasks of another issue. Must always be part of the breakdown of the parent issue. version:7.22.0-alpha5 version:7.22.0

Comments

@yanavasileva
Copy link
Member

yanavasileva commented Jul 8, 2024

Acceptance Criteria (Required on creation)

  1. Engine
    • ProcessEngineConfigurationImpl - Remove configuration properties and related code that are not needed anymore.
      won't start up after an update
    • BootstrapEngineCommand - don't add telemetry lock and property
      • for updated instance, the database property/ies will be left there and they won't be used. Do we want to remove it?
    • 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.
    • 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
    • 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
    • connect dependency - remove it and check if shading is working as expected
    • Loggers - remove all logging that is not used any longer
  2. REST API
    • deprecate and empty out
    • remove tests
  3. Distros, javaee, connect plugin
    • remove connect process engine plugin used for telemetryHttpConnector (sending HTTP requests for telemetry) and the a
    • 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)
    • tests configuration files - remove telemetry endpoint property
    • tests - remove sending telemetry tests but leave and ensure diagnostic data API is tested
    • wiremock - remove where not needed anymore
  5. Docs
    • Configuration pages - remove telemetry properties: process engine, quarkus, spring boot
    • 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.
    • 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

  1. ci:all-as ci:default-build ci:e2e ci:migration ci:rest-api ci:rolling-update ci:webapp-integration
    yanavasileva
  2. yanavasileva
  3. ci:no-build ci:postgresql
    yanavasileva
@yanavasileva yanavasileva added type:subtask Issues that are subtasks of another issue. Must always be part of the breakdown of the parent issue. scope:core-api Changes to the core API: engine, dmn-engine, feel-engine, REST API, OpenAPI version:7.22.0 labels Jul 8, 2024
@yanavasileva yanavasileva self-assigned this Jul 8, 2024
@yanavasileva
Copy link
Member Author

yanavasileva commented Jul 10, 2024

To remove, no longer used: org.camunda.bpm.engine.impl.telemetry.dto.InternalsImpl.telemetryEnabled


It's not exposed in public Java API and not available in REST API at all.

@yanavasileva
Copy link
Member Author

yanavasileva commented Jul 10, 2024

❓ Do we need migration test?
* No, as we don't have data to test from previous version to this.
❓ Can we remove the telemetry.lock from the sql scripts?

  • No, since old engine should work with new database schema and the lock is needed during start up. However, the Database schema backwards compatibility doesn't mention that scenario. ref.
  • Yes, since the property will be there for existing instances and not needed in new ones.

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

  • No, the diagnostics are collected per process engine node (installation).

@yanavasileva
Copy link
Member Author

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

@yanavasileva
Copy link
Member Author

Docs PR is still work in progress.

yanavasileva added a commit that referenced this issue Aug 20, 2024
* remove process engine configuration properties 
   * clean the test configuration files
* remove database property
* remove database lock
* remove `connect` dependency
  * remove connect process engine plugin
* remove unused logging + telemetry logger
* empty out commands: `IsTelemetryEnabledCmd`
  * remove related command checks
  * `IsTelemetryEnabledCmd` returns always `false`, add javadoc
* adjust tests
  * remove redundant tests
  * adjust quarkus tests
  * remove TelemetryConnectPluginTest IT
  * fix flaky license key test
* engine-rest: deprecate API and cleanup tests
  * adjust OpenAPI
  * fix rest api mock
* javaee: use PlatformXmlStartProcessEnginesStep instead of
EjbPlatformXmlStartProcessEnginesStep
* remove `wiremock` dependency
   * add guava (previously transitive to wiremock)
* remove InternalsImpl.telemetryEnabled
* telemetry sending task
  * remove timer & cleanup #updateAndSendData
  * rename to DiagnosticsCollector
* remove telemetry reporter
* remove telemetry in distro/run and spring-boot-starter
* ManagementServiceImpl.clearTelemetryData()
* preserve collecting diagnostics
   * renaming telemetry -> diagnostics
     * TelemetryRegistry -> DiagnosticsRegistry
     * PlatformTelemetryRegistry -> PlatformDiagnosticsRegistry
     * CommandChecker.checkReadDiagnosticsData ->CommandChecker.checkReadTelemetryData
     * DeleteLicenseKeyCmd.updateTelemetry -> DeleteLicenseKeyCmd.updateDiagnostics
     * ManagementServiceImpl.getLicenseKeyFromTelemetry() -> ManagementServiceImpl.getLicenseKeyFromDiagnostics()
   * move
     * org.camunda.bpm.engine.impl.telemetry.reporter.DiagnosticsCollector -> org.camunda.bpm.engine.impl.telemetry.DiagnosticsCollector
     * org.camunda.bpm.engine.impl.telemetry.JavaClases -> org.camunda.bpm.engine.impl.diagnostics

#4483
@mboskamp
Copy link
Member

#4544 is ready for merge.

yanavasileva added a commit that referenced this issue Aug 23, 2024
* remove telemetry configuration property from `quarkus-extension` as it no longer exist
* exclude telemetry test in `old-engine` setup as telemetry feature is removed in newer versions; during rolling update users run old engine and data with new schema, so the test is not relevant for the scenario

#4483
yanavasileva added a commit to camunda/camunda-docs-manual that referenced this issue Aug 26, 2024
* remove sending telemetry feature
* add diagnostics data page
* add migration guide paragraph

camunda/camunda-bpm-platform#4483
tobiasschaefer added a commit to tobiasschaefer/micronaut-camunda-bpm that referenced this issue Sep 13, 2024
tobiasschaefer added a commit to tobiasschaefer/micronaut-camunda-bpm that referenced this issue Sep 16, 2024
tobiasschaefer added a commit to tobiasschaefer/micronaut-camunda-bpm that referenced this issue Oct 4, 2024
tobiasschaefer added a commit to camunda-community-hub/micronaut-camunda-platform-7 that referenced this issue Oct 4, 2024
hauptmedia added a commit to hauptmedia/operaton that referenced this issue Nov 3, 2024
* remove telemetry configuration property from `quarkus-extension` as it no longer exist
* exclude telemetry test in `old-engine` setup as telemetry feature is removed in newer versions; during rolling update users run old engine and data with new schema, so the test is not relevant for the scenario

camunda/camunda-bpm-platform#4483

Backported commit abf8f55857 from the camunda-bpm-platform repository.
Original author: yanavasileva <[email protected]>
kthoms pushed a commit to kthoms/operaton that referenced this issue Nov 5, 2024
* remove telemetry configuration property from `quarkus-extension` as it no longer exist
* exclude telemetry test in `old-engine` setup as telemetry feature is removed in newer versions; during rolling update users run old engine and data with new schema, so the test is not relevant for the scenario

camunda/camunda-bpm-platform#4483

Backported commit abf8f55857 from the camunda-bpm-platform repository.
Original author: yanavasileva <[email protected]>
kthoms pushed a commit to kthoms/operaton that referenced this issue Nov 5, 2024
* remove telemetry configuration property from `quarkus-extension` as it no longer exist
* exclude telemetry test in `old-engine` setup as telemetry feature is removed in newer versions; during rolling update users run old engine and data with new schema, so the test is not relevant for the scenario

camunda/camunda-bpm-platform#4483

Backported commit abf8f55857 from the camunda-bpm-platform repository.
Original author: yanavasileva <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
scope:core-api Changes to the core API: engine, dmn-engine, feel-engine, REST API, OpenAPI type:subtask Issues that are subtasks of another issue. Must always be part of the breakdown of the parent issue. version:7.22.0-alpha5 version:7.22.0
Projects
None yet
Development

No branches or pull requests

3 participants