Caches Module

The SDK's caching integration is agnostic to the underlying engine used. In most cases, the SDK will instrument existing cache abstractions in certain frameworks or libraries.

Span OPDescription
cache.getA single item or multiple items are retrieved from the cache
cache.putA single item or multiple items are written to the cache
cache.removeA single item or multiple items are removed from the cache
cache.flushThe entire content of the cache is deleted

The description of cache spans should be set to the cache key(s), sepreated by commas, e.g. posts, or article1, article2.

Data KeyTypeDescriptionConditions
cache.hitboolcache hit or missrequired only on read-operations (cache.get)
cache.keyarraythe key(s) involved in the operationrequired only on operations that have a key

The following data attributes are only to be set if exposed by the instrumented cache abstraction or retrievable with minimal overhead.

Data KeyTypeDescriptionConditions
cache.item_sizeintthe size of the item/items read/written/deleted in bytesonly on operations that have a key
cache.successboolthe operation has succeeded or failed
cache.ttlintthe time to life in secondsonly on operations that have a key
network.peer.addressstringThe hostname of the cache instance
network.peer.portintthe port used by the cache instance

Once an application performs a caching operation, the SDK creates a new span based on the operation, wrapping any spans of the underlying engine as direct children.


item = Cache::get('posts')

This should result in the following spans, assuming a cache hit with an underlying Redis instance being used.

<span op:"cache.get" description:"posts" cache.key:"posts" cache.hit=true>
	<span op:db.redis description:"GET posts"></span>

If convenient, the SDK can optionally offer a cache_prefixes option, that wraps existing instrumentations into a cache span. This will likely only be useful if Redis is being used as a cache.

  integrations: [
	    cachePrefixes: ['posts:', 'authors:'],

In this example, all Redis queries involving keys that match posts:* and authors:* will be wrapped into cache.* span.

Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").