trickster: Redis configuration is not caching any request

After configuring Trcikster to use AWS ElastiCache/Redis 5.0.4, deployed as Master + 2 Replicas and without cluster mode enabled.

Using Trickster 1.0-beta8 image

Deployed on K8s with 3 replicas and exposing Trickester through an Ingress to allow Grafana to use it as Datasource.

Every time Grafana runs a query Trickster misses the cache, even copying the request from Grafana and running it with curl multiple times it keeps failing the cache

    [caches]

        [caches.default]
        # cache_type defines what kind of cache Trickster uses
        # options are 'bbolt', 'filesystem', 'memory', 'redis' and 'redis_cluster'
        # The default is 'memory'.
        type = 'redis'

        # compression determines whether the cache should be compressed. default is true
        # changing the compression setting will leave orphans in your cache for the duration of timeseries_ttl_secs
        compression = true

        # timeseries_ttl_secs defines the relative expiration of cached timeseries. default is 6 hours (21600 seconds)
        timeseries_ttl_secs = 21600

        # fastforward_ttl_secs defines the relative expiration of cached fast forward data. default is 15s
        fastforward_ttl_secs = 15

        # object_ttl_secs defines the relative expiration of generically cached (non-timeseries) objects. default is 30s
        object_ttl_secs = 30

            ### Configuration options for the Cache Index
            # The Cache Index handles key management and retention for bbolt, filesystem and memory
            # Redis handles those functions natively and does not use the Trickster's Cache Index
            [caches.default.index]

            # reap_interval_secs defines how long the Cache Index reaper sleeps between reap cycles. Default is 3 (3s)
            reap_interval_secs = 3

            # flush_interval_secs sets how often the Cache Index saves its metadata to the cache from application memory. Default is 5 (5s)
            flush_interval_secs = 5

            # max_size_bytes indicates how large the cache can grow in bytes before the Index evicts least-recently-accessed items. default is 512MB
            max_size_bytes = 536870912

            # max_size_backoff_bytes indicates how far below max_size_bytes the cache size must be to complete a byte-size-based eviction exercise. default is 16MB
            max_size_backoff_bytes = 16777216

            # max_size_objects indicates how large the cache can grow in objects before the Index evicts least-recently-accessed items. default is 0 (infinite)
            max_size_objects = 0

            # max_size_backoff_objects indicates how far under max_size_objects the cache size must be to complete object-size-based eviction exercise. default is 100
            max_size_backoff_objects = 100



            ### Configuration options when using a Redis Cache
            [caches.default.redis]
            # protocol defines the protocol for connecting to redis ('unix' or 'tcp') 'tcp' is default
            protocol = 'tcp'
            # endpoint defines the fqdn+port or path to a unix socket file for connecting to redis
            # default is 'redis:6379'
            endpoint = 'redis-common.external-service.svc.cluster.local:6379'
            # password provides the redis password
            # default is empty
            password = ''

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 2
  • Comments: 19 (6 by maintainers)

Most upvoted comments

@kogent Thanks for checking, hopefully we can get to the bottom of this. If it is still an issue, we would like to get on a call and work through this together if you are available and interested. My contact information is on my github profile. Thank you!

hey @cpower, would you be interested in giving me an assist with debugging trickster in aws backed by redis elasticache?