Show / Hide Table of Contents
    Note

    These docs are a work in progress. While conceptually correct, the diagrams/code samples on this page might not be 100% in line with the current implementation in Copper.

    Diagnostics

    Context and problem

    There is a reason hard to find bugs are often only found after a debugger is attached. This is due to a lack of visibility into the system and the flow of data through the system. Tracing and logging is often added, but not at a level where it provides enough visibility to aid in finding and solving issues in production. Even if a team reaches the point where they know what happened, it is still long ways of to the point where you want to be, and that is to know what is happening (live) in the system.

    Solution

    By providing the right extensibility points in the transport layers, Copper is able to visualize use cases that flow through the system, without a developer going around, adding logging statements. Our vision is to capture everything by default and make it a deliberate choice to ignore certain (sensitive data).

    All along the call chain there is data captured giving the Ops team great visibility into what is happening in the system. This prevents going back to your customer and asking for the reproduction scenario and figuring out what happened.

    Copper provides complete call chain including operation arguments and ambient context details. Also includes timeline-separated event handlers.


    • Improve this Doc
    Back to top Generated by DocFX