Freedom to build awesome applications with Aiven
Once a week, I am googling for new articles or projects which use Redis Plugins for Grafana and constantly see links to Aiven — “Scale-up and get the latest open-source features without in-house upgrade hassles”. Interesting? Redis database can be deployed in Redis Cloud and Grafana in Grafana Cloud. Can both of them be deployed in Aiven and seamlessly work with other services?
Browsing the Aiven website, I learned that I could deploy a modern open-source Redis database in 10 minutes, and get 99.99% uptime in 90+ Regions. Aiven supports out-of-the-box Grafana, InfluxDB, Kafka, and many other open-source projects.
Let’s create our Redis and Grafana services
When you log in to the Aiven console, you can choose one of the supported services: Kafka, PostgreSQL, MySQL, Elasticsearch, Cassandra, Redis, InfluxDB, Grafana, M3DB, etc. I will create the Redis database for my new project on AWS in the us-east-1 region with minimum configuration and upgrade to the bigger instance when the project goes live.
While the Redis instance is deploying, I created the Grafana service in the same region to avoid latency issues. Configured services can be effortlessly integrated with Datadog, Prometheus, Syslog, AWS CloudWatch, Google Cloud Logging, and other services.
Configuring Grafana service
After a couple of minutes, the new Grafana service was up and running with one of the latest versions, 8.0.3.
The service can be configured to allow access from specific IP addresses, set a preferred Maintenance window, upgrade Service Plan, and migrate to another cloud or region while it's running.
Migration happens in the background and does not affect your service until the service has been rebuilt in the new region. After this, the DNS name the service uses is pointed to the new region which may cause a short interruption in service while the DNS changes are propagated.
After logging into Grafana using configured Service URI with provided User and Password, you can see the Grafana home page and add new data sources and dashboards.
Created Grafana instance supports all built-in and a limited number of community plugins.
Grafana instance configuration supports custom advanced options, which allows modifying authentication method, SMTP server, etc. Parameterplugin_admin_enabled
is not available to enable one of the newest features of the Grafana 8 plugin Catalog to install community plugins.
Configuring Redis service
Redis service is up and running with version 6.2.3, and has similar Grafana configuration options to upgrade the Service plan, allow connection from specific IP addresses, integrate with other services, fork database, and specify maintenance window, which is one of the favorites. Aiven’s customers should love it!
Redis service provides SSL instances with default user and password to protect access. The command acl
is not available, and additional users can be added using the Console.
I don’t see options for an SSL Certificate and Keys to further secure the connection required by Enterprise customers.
I was planning to monitor my application data and interact with the Redis instance using Redis plugins for Grafana. Unfortunately, they are not available in the provided configuration and should be requested from Aiven’s Support.
I like Aiven’s support, which promptly responded to my request:
Hi Mikhail,
I have raised a feature request to have this feature included in our offering. Now the process would be to gather interest from our customers. Then the product management will make a decision based mainly on interest, licence, code maturity, impact on including a new feature etc. I will link your contact details to the internal ticket that we keep to track this activity. In this way you will be notified if and when the new functionality becomes available.
Connecting to Redis service from Grafana
To verify a connection and interact with the Redis service, I am going to use local Grafana installation with preinstalled Redis plugins using Docker image redis-app
:
docker pull ghcr.io/redisgrafana/redis-app:latest && \
docker run -p 3000:3000 --name=redis-app ghcr.io/redisgrafana/redis-app:latest
Copy the Service URL from the Aiven Console to set Address, Password and enable TLS Client Authentication with Certificates and Keys for the new data source. Click Save & test to verify connectivity.
Redis Data Source successfully connected to Redis service and is ready to run any commands. In most cases, I am using the Redis CLI dashboard, which provides the most important Redis information — ops/sec, clients, memory, network, keys, and custom panels — Redis CLI, Latency, and Max Memory Keys.
Conclusion
Aiven provides intuitive UI with many configuration options, and it’s easy to get started with new services in less than 10 minutes. Having various open-source services from one vendor is a great option but comes with limitations.
I could not install Grafana community plugins to connect to the Redis from the Grafana service and add custom panels required for my project dashboards available at Grafana Cloud.
Configured Redis service comes with a limited security configuration and does not support modules like RedisTimeSeries, RedisGears, etc., available at Redis Cloud.
I have not tested other services like Elasticsearch, Kafka, InfluxDB, or M3, primarily interested in Redis and Grafana for my projects.
Volkov Labs is an agency founded by long-time Grafana contributor Mikhail Volkov. We find elegant solutions for non-standard tasks.
Check out the latest plugins and projects at https://volkovlabs.io