Skip to content

Add support for Open Telemetry #157

Description

@Turnerj

Open Telemetry has reached v1 and may be worth directly supporting in Cache Tower.

See: https://medium.com/opentelemetry/opentelemetry-specification-v1-0-0-tracing-edition-72dd08936978

  • Tracing: Not sure where this would fit in - may relate closely with logging
  • Logging: Relates to Add a logging extension #150
  • Metrics: May be worth capturing cache hits/misses, background refreshes and the interaction of different layers

Further investigation required.

Activity

  1. mgoodfellow commented on Aug 11, 2021

    @mgoodfellow
    Contributor

    Hi @Turnerj

    Just my 2 cents on this - I wouldn't tightly bind your lib to Open Telemetry - instead I think an approach of providing something like an ICacheMonitor interface, which has a bunch of definitions for "things" that could be monitored.

    These could be things like (off the top of my head - I'm sure there could be many more!):

    • CacheHit(TimeSpan timeTaken, string layerName)
    • CacheMiss(TimeSpan timeTaken, string layerName)
    • CacheException(TimeSpan timeTaken, string layerName, Exception exception)
    • CacheStaleRefresh(TimeSpan timeTaken, TimeSpan cacheAge, string layerName)

    By default there would be a NoOpCacheMonitor used unless replaced during setup, which just no ops the calls.

    This way an Open Telemetry implementation could be built, or indeed, any other roll-your-own, or of the shelf system could easily be supported. The consumer just needs to wire up a concrete implementation of CacheMonitor which ties into their monitoring system.

  2. Turnerj commented on Aug 11, 2021

    @Turnerj
    MemberAuthor

    Thanks for the feedback @mgoodfellow !

    Everything you've said makes sense and is probably what I should do. Similarly doing it that method allows for integration with event counters too.

    Depending on the access points needed to support it, I should be able to achieve this through my extension system (even if it requires new "hook" points).

  3. added this to the v1.0 milestone on Oct 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions