Skip to content

Latest commit

 

History

History
62 lines (41 loc) · 4.4 KB

README.md

File metadata and controls

62 lines (41 loc) · 4.4 KB

The Continuous Feedback Manifesto (Draft)

Many developers are familiar with Continuous Deployment and Continuous Integration as established development practices. Continuous Feedback describes the inverse process that aims to bring back data from the code runtime environments and into the hands of developers. With Continuous Feedback the goal is not to maximize throughput and velocity from code to prod but to maximize the scope of feedback from prod through test and dev and back to code.

Continuous over Manual

Continuous feedback needs to happen automatically, as the developer works, and cannot rely on manual processes or dashboard checks

Proactive vs. Reactive

Continuous feedback must used before a problem occurs or very early in its development, rather than a reaction to existing bugs or production issues.

Code centric vs. Service centric

Traditional APMs focus on SREs, IT, and DevOps whereas CF is focused on developers and their code and code changes.

Clarity over Raw data

Raw data requires additional cognitive effort to process whereas Continuous Feedback focuses instead on the significance of the data to the developer's code

Resources

Setting up OTEL

  • via the Java OTEL Agent
  • via Micrometer Tracing to get JDBC working you need to add the following dependency as well: net.ttddyy.observation:datasource-micrometer-spring-boot
  • via the Quarkus Extension (Quarkus), you may need to add additional extensions to get more automatic tracing, They are listed here
  • Or just use Digma! Digma will automatically use the right strategy based on your application.

Collecting observability data

  • For a single source, most likely you can just configure OTEL using system properties/environment variables. You can see the options here for the Agent.
  • If you want to receive/send to multiple sources, use the OTEL Collector
  • If you’re using Digma, it will also function as a collector and Jaeger instance so it will collect your data automatically. You can also direct the observability data somewhere else via the Digma plugin settings.

Automatic instrumentation

Manual instrumentation

  • Using the @WithSpan attribute
  • For Micrometer Tracing, use the Observed API and the @Observed annotation.

Processing OTEL with OSS/Free Tools

Processing OTEL with OSS/Free Tools

For more resources