Monitoring and Logging in Cloud Environments: Prometheus and Grafana

Introduction to Cloud Monitoring and Logging

Let’s start with the basics: what exactly is cloud monitoring and logging? If you’ve been working in cloud environments—or even just started exploring them—you’ve likely heard these terms thrown around quite a bit. Don’t worry if they sound a bit technical; they’re simpler than they seem!

What’s Cloud Monitoring?

At its core, **cloud monitoring** is all about keeping an eye on your cloud infrastructure. Imagine you’re responsible for managing a massive fleet of cars. You’d want to know how many are on the road, how fast they’re going, and if they need maintenance, right? Well, cloud monitoring is somewhat similar—it’s about making sure your cloud systems are running smoothly, are secure, and are performing as expected.

Here are a few things cloud monitoring typically covers:

  • **Performance metrics**: CPU usage, memory consumption, and network traffic.
  • **Availability**: Is the system up and running? Are any services down?
  • **Resource utilization**: How efficiently are your servers being used?
  • **Errors and issues**: Catching bugs, crashes, or unusual behavior before they become serious problems.

By monitoring these aspects, you not only gain visibility into what’s happening but also the ability to proactively fix issues before they cause any downtime. Think of it as having a 24/7 dashboard of your cloud setup.

What’s Cloud Logging?

Now let’s move on to **cloud logging**. If monitoring is like observing the big picture—the performance and health—logging is like reading the diary of each component in your cloud environment. It’s focused on capturing detailed records of what’s happening inside your systems.

Here’s a simple breakdown of what cloud logging allows you to do:

  • Track **events** across your infrastructure: Did a server restart? Was there a login attempt?
  • Identify **patterns**: Is there a recurring error that seems to pop up at certain times?
  • Conduct **audits**: Who accessed what, and when?
  • Maintain **compliance**: In many industries, it’s crucial to have logs for security and regulatory reasons.

The logs are automatically generated by your system, and they can be gold mines of information when it comes to diagnosing problems or uncovering trends. For example, logs might reveal that a particular server is failing at the same time every day due to a scheduled task that’s consuming too many resources.

Why Do We Need Both?

You might wonder, “If I have monitoring tools in place, do I really need logging too?” The answer is a resounding yes! While monitoring gives you a bird’s-eye view, logging gets into the nitty-gritty details. The two complement each other beautifully:

  • Monitoring helps you **detect** problems early.
  • Logging helps you **diagnose** the root cause of those problems.

For instance, monitoring might alert you to a spike in CPU usage on one of your cloud servers, but it’s the logs that will tell you exactly which process caused the spike and why. Without this combination, troubleshooting can become a guessing game, and when you’re working with complex cloud environments, you never want to leave things to guesswork.

Keeping the Cloud (and Your Mind) Clear

Cloud environments are dynamic; they can scale rapidly and span across multiple regions, providers, and services. Keeping track of everything manually would be a nightmare. That’s why effective monitoring and logging solutions are essential—they do the heavy lifting for you, giving you the peace of mind that your cloud setup is running as it should.

In the next sections, we’ll dive deeper into specific tools that make cloud monitoring and logging a breeze. Ready to explore Prometheus and Grafana? Let’s get started!

Why Effective Monitoring is Crucial in Cloud Environments

In today’s fast-paced digital world, cloud environments are becoming the backbone for applications, services, and infrastructure. Where businesses once relied on physical servers, many now depend on cloud providers such as AWS, Azure, or Google Cloud. But with this shift comes a new set of responsibilities—most notably, ensuring that your cloud is running smoothly. This is where effective monitoring steps in to save the day.

Keeping an Eye on Dynamic Systems

Cloud environments are not static. One of the key advantages of the cloud is scalability, meaning systems can grow and shrink, often automatically, based on demand. While this flexibility is fantastic for businesses, it also means that **your infrastructure changes constantly**. Without proper monitoring in place, you might not even notice an issue until it’s too late.

Imagine a scenario where your application is auto-scaling during a high-traffic event, but one of the new instances is misconfigured. Without monitoring, this could lead to slower response times, customer dissatisfaction, or even downtime—none of which are good for business. Effective monitoring helps you spot these issues early, giving you a chance to respond in real-time.

Ensuring System Reliability and Uptime

Cloud providers boast impressive uptime percentages, but let’s face it: **downtime is still possible**. Whether it’s a cloud provider outage, a misbehaving service, or a configuration error, things can go wrong. Without the right monitoring tools in place, understanding what’s happening and why your system is down can be a guessing game.

Effective monitoring provides a clear view into your cloud’s performance metrics, error logs, and overall health. When something goes wrong, you can see not only **that** it happened but **why** it happened. Did your CPU usage spike? Was a database query taking too long? Monitoring shows you the root cause, helping you get your systems back online faster.

Cost Optimization

One of the biggest advantages of cloud computing is the pay-as-you-go model. You only pay for what you use, so it’s critical to ensure your resources are optimized. However, without effective monitoring, unused resources can easily rack up costs. For example, **idle instances running unnoticed** or inefficient resource allocation can result in a hefty monthly bill.

Monitoring tools allow you to track resource utilization and identify areas where you can cut costs. Perhaps you’ll notice a virtual machine running without any significant workload or find that you’re over-provisioning storage. By keeping an eye on these elements, you can tweak your infrastructure to be more cost-efficient—without compromising performance.

Security and Compliance

Whether you’re in healthcare, finance, or another regulated industry, **security is non-negotiable**. With cloud environments, monitoring isn’t just about performance; it’s also about keeping an eye on security. Effective cloud monitoring enables you to detect unusual activities, such as unauthorized access, failed login attempts, or unusual traffic spikes, all of which might indicate a security breach.

Many compliance standards, such as GDPR or HIPAA, also require robust monitoring for security and access controls. These regulations often push businesses to maintain logs and audit trails for all activities. Having a well-rounded cloud monitoring strategy ensures you can meet these demands while keeping your systems safe from prying eyes.

Proactive Problem Solving

Let’s be honest—no one likes firefighting. Reactive problem-solving is stressful and often inefficient. Effective cloud monitoring allows **proactive management** of your infrastructure, meaning you can catch and fix small issues before they escalate into major problems.

For example, if you see that your database response times have been slowly increasing, you can address the issue before it leads to a full-blown outage. Proactive monitoring not only improves your system’s reliability but also creates a smoother experience for users and reduces the burden on your support team.

Conclusion

In the complex, ever-changing world of cloud environments, effective monitoring isn’t just a nice-to-have—it’s a necessity. From keeping costs in check to ensuring system reliability and security, monitoring gives you the visibility and insights needed to run a smooth and efficient cloud operation.

Overview of Prometheus: A Popular Monitoring Tool

If you’re venturing into the world of cloud monitoring, you’re bound to hear about **Prometheus**. It’s one of the most popular tools on the market for monitoring cloud infrastructure, and for good reason! Whether you’re running a hybrid cloud, public cloud, or private cloud, Prometheus has become the go-to solution for capturing metrics and monitoring system health.

What Is Prometheus?

Prometheus is an **open-source systems monitoring and alerting toolkit** that was originally developed by SoundCloud in 2012. Since then, it has grown in popularity and is now part of the **Cloud Native Computing Foundation (CNCF)**, which also hosts Kubernetes. It’s specifically designed to handle dynamic cloud environments, making it a perfect fit for modern infrastructure monitoring.

At its core, Prometheus is all about **metrics**—it collects them, stores them, and allows you to query them in real-time. That’s what makes it stand out from other monitoring tools like Nagios or Zabbix, which are more focused on logs or event-based monitoring.

How Does Prometheus Work?

Prometheus operates on a **pull-based model**. This means that instead of waiting for metrics to be pushed from applications or services, Prometheus actively “pulls” the data from predefined endpoints, known as **exporters**. These exporters are lightweight programs that translate application data into a format that Prometheus can read.

Here’s a fun fact: if you’re running a service in the cloud, chances are, there’s already an exporter for it. From **AWS CloudWatch** to **MySQL**, exporters exist for a wide range of popular cloud services and applications. These exporters expose metrics over HTTP endpoints, and Prometheus then scrapes (fetches) the data at regular intervals.

Key Features of Prometheus

Prometheus brings a lot to the table when it comes to cloud monitoring. Let’s look at some of its stand-out features:

  • Multidimensional Data Model: All metrics in Prometheus are stored with labels (key-value pairs), which allows for highly flexible and powerful queries.
  • Time Series Database (TSDB): Prometheus stores all data as time series, meaning that it can handle historical data as well as real-time metrics.
  • Custom Queries with PromQL: Prometheus Query Language (PromQL) allows you to write custom queries to slice and dice your metrics data just the way you want it.
  • Built-in Alerting: Prometheus has its own alert manager that you can configure to send alerts to various channels, such as Slack, PagerDuty, or email.
  • Scalability: Because of its architecture, Prometheus is decentralized. It doesn’t rely on distributed storage, making it lightweight and scalable, especially in cloud environments.

Why Prometheus Is Cloud-Native

One of the reasons Prometheus has become so popular is its **cloud-native** design. In a cloud-native world, services are dynamic, containers can come and go, and infrastructure is often ephemeral. Prometheus is designed to thrive in this kind of environment.

For example, when running in a **Kubernetes** environment, Prometheus can automatically discover services and begin monitoring them, thanks to its **service discovery** capabilities. This makes it a perfect tool for microservices and containerized environments where manual intervention might be impractical—or downright impossible.

Limitations of Prometheus

Like all tools, Prometheus isn’t without its limitations:

  • Short-Term Storage: Prometheus is designed for short-term storage of metrics (typically weeks). If you need long-term storage, you’ll need to integrate it with external systems like **Thanos** or **Cortex**.
  • No Built-in Visualization: While Prometheus excels at storing and querying data, it doesn’t offer much in terms of visualization. This is where tools like **Grafana** come into play to fill the gap.
  • Single-node Storage: Each Prometheus instance works independently; if you need to scale across multiple nodes or regions, you’ll need additional tools to handle that complexity.

Use Cases for Prometheus

Prometheus is a versatile tool that fits a wide range of use cases. Here are a few examples of where it shines:

  1. Cloud Infrastructure Monitoring: Monitoring instances, containers, and other cloud resources in real-time.
  2. Application Performance Monitoring (APM): Tracking the performance of distributed applications, especially in microservice architectures.
  3. Alerting on System Failures: Setting up alerts for abnormal system behavior, such as increased latency or high memory usage.

As you can see, Prometheus is a powerful and flexible tool that has earned its place as a cornerstone of cloud monitoring.

Setting Up Prometheus for Cloud Infrastructure Monitoring

So, you’ve heard about Prometheus, and now you’re ready to dive in and start using it to monitor your cloud infrastructure. Prometheus is an open-source systems monitoring and alerting toolkit that’s perfect for cloud environments, especially with its ability to handle dynamic infrastructure. Let’s walk through the process of getting Prometheus up and running in a way that’s effective and scalable.

1. Installing Prometheus

The first step is to install Prometheus on your cloud infrastructure. Fortunately, the installation process is pretty straightforward. Prometheus can be installed on Linux, Windows, or MacOS, or you can use a Dockerized version if you prefer containerization.

  • For **Linux**: You can download the binary from the Prometheus website, extract it, and run it as a service. Typically, you’ll place the binary in `/usr/local/bin` and the configuration files in `/etc/prometheus`.
  • For **Docker**: If your cloud architecture uses Docker heavily, you can pull the Prometheus image from Docker Hub with the command:
    docker run -p 9090:9090 prom/prometheus.

Pro Tip: If you’re working with Kubernetes, Prometheus can also be deployed using Helm charts, making the setup even simpler.

2. Configuring Prometheus

Now that you’ve got Prometheus installed, it’s time to configure it to actually monitor your cloud environment. Prometheus uses a YAML-based configuration file called `prometheus.yml`. This file is where you define the **scrape targets**, which are essentially the endpoints from which Prometheus will collect metrics.

Here’s a quick breakdown of what you’ll need to include in your `prometheus.yml`:

  • Global Block: This is where global settings like the time interval between scraping targets (default is 15 seconds) are defined.
  • Scrape Configurations: This is the heart of the config file. You’ll specify the endpoints to scrape for metrics. For example, if you’re using a cloud service like AWS, you can use exporters such as the Node Exporter or Blackbox Exporter to gather metrics from EC2 instances or S3 storage.

Here’s a simple example of a scrape configuration in `prometheus.yml`:

“`yaml
scrape_configs:
– job_name: ‘cloud_instance_metrics’
static_configs:
– targets: [‘localhost:9090’]
“`

Of course, in a real-world cloud setup, you’ll be scraping multiple targets from various services, databases, and instances. You may also want to leverage **Service Discovery** features if you’re working with a large and dynamic cloud environment, such as Kubernetes.

3. Exporters: The Key to Cloud Monitoring

Prometheus uses **exporters** to collect metrics from different services. Since cloud services often encompass various platforms and stacks (databases, containers, virtual machines), you’ll be using a range of exporters. Some popular ones include:

  • Node Exporter: For collecting system metrics (CPU, memory, disk, etc.) from cloud VMs.
  • Blackbox Exporter: For probing endpoints and testing availability.
  • Cloud-specific Exporters: Exporters exist for AWS, Azure, and GCP, helping you gather metrics from native cloud services.

Once installed and configured, these exporters will expose metrics on specific endpoints, which Prometheus will scrape at regular intervals.

4. Securing Your Prometheus Setup

Security is crucial, especially when working in cloud environments. By default, Prometheus’ HTTP server (usually running on `:9090`) is not secured, so implementing security measures is important:

  • Basic Authentication: You can configure basic authentication in front of Prometheus using a reverse proxy like Nginx or Traefik.
  • SSL/TLS: Adding SSL encryption is a must to prevent metrics data from being exposed in plaintext. Again, using a reverse proxy is a common approach to handle TLS termination.
  • Firewall Rules: Ensure that only necessary traffic can reach your Prometheus instance, especially if it’s deployed within a public cloud network.

5. Testing & Verifying the Configuration

After setting things up, it’s essential to verify that Prometheus is scraping metrics correctly. You can check this by visiting Prometheus’ web UI at `http://localhost:9090`. From here, you can manually run queries to inspect the metrics that are being collected.

Try running an initial query like:

“`promql
up
“`

This simple query checks if Prometheus can reach its scrape targets. You should see a `1` for any target that’s healthy and up, and a `0` for targets that are down or unreachable.

“`

Visualizing Metrics with Grafana: A Perfect Pair with Prometheus

When it comes to monitoring your cloud infrastructure, collecting data is only half the battle. What good is all of that raw information if you can’t make sense of it quickly and easily? That’s where **Grafana** steps in, a tool designed specifically to bridge the gap between data collection and meaningful insights. If Prometheus is your go-to for gathering metrics, Grafana is the ideal companion for making those metrics come to life through rich, interactive dashboards.

Why Grafana is a Game Changer for Visualization

So, what makes Grafana stand out in the crowded world of visualization tools? Simply put, it’s one of the most flexible and user-friendly platforms out there. Whether you’re a seasoned DevOps engineer or just dipping your toes into cloud monitoring, Grafana’s intuitive interface makes it a breeze to set up and use. Plus, its ability to pull data from a variety of sources—including Prometheus—makes it incredibly versatile.

Here are a few reasons why Grafana is a must-have for visualizing cloud metrics:

  • Real-time Dashboards: View your cloud infrastructure’s health in real-time, with refresh rates as low as a few seconds. Ideal for spotting issues instantly.
  • Customizable Visualizations: From simple line graphs to complex heatmaps, Grafana offers endless customization for its visualization panels.
  • Alerts and Notifications: Set up alerts directly from your dashboards to notify you when metrics breach predefined thresholds (e.g., CPU usage spikes).
  • Multi-source Support: While Prometheus is a popular data source, Grafana works well with several others, including MySQL, Elasticsearch, and CloudWatch. You can even blend data from different sources on the same dashboard.

Tailoring Your Grafana Dashboards to Cloud Metrics

The beauty of Grafana is that it allows you to create an infinite variety of dashboards, tailored to exactly what you need to monitor in your cloud environment. Whether you’re tracking **microservices**, **network performance**, or detailed **application-level metrics**, Grafana lets you create a dashboard that provides a high-level overview or deep insights into specific components.

A few tips to keep in mind when designing cloud monitoring dashboards:

  1. Group Related Metrics: Create panels that group related metrics (e.g., CPU usage, memory, disk I/O) together so that you can get a holistic view of your environment at a glance.
  2. Use Color Coding: Apply color codes to highlight normal vs. abnormal ranges. This makes it easier to spot anomalies at a glance.
  3. Keep It Simple: While it’s tempting to add every metric possible, too much data on a single dashboard can overwhelm the user. Aim for clarity and focus.
  4. Leverage Grafana’s Built-in Plugins: Grafana offers a wide range of plugins for different types of panels and data sources. Explore the available plugins to find visualizations that work best for your needs.

Interactive Dashboards: Not Just Pretty Graphs

Beyond just presenting data, Grafana allows you to **drill down** into your metrics. Clicking on a graph or metric can take you to deeper layers of data, enabling fast troubleshooting when issues arise. You can also set up **dynamic dashboards** where filters automatically adjust based on the environment or specific services you’re interested in. For example, if you have multiple cloud environments (development, staging, production), a single Grafana dashboard can allow you to switch views between them effortlessly.

Pro Tip: Take advantage of Grafana’s **templating** feature. You can create variables that change across dashboards, making it easier to reuse the same dashboard for different environments or applications without manually adjusting every setting.

Sharing and Collaborating on Dashboards

One of Grafana’s standout features is the ability to easily share dashboards with your team. Whether you’re troubleshooting an issue or presenting findings to stakeholders, you can share a link or export the dashboard as a snapshot. You can even control whether snapshots are **static** (a moment in time) or **dynamic** (live updates). This fosters a collaborative approach to cloud monitoring, ensuring everyone is on the same page.

Bonus: Grafana also enables you to create **team folders**, which organizes dashboards based on specific teams, microservices, or components, helping teams focus on what matters most to them.

 

How to Integrate Prometheus and Grafana for Comprehensive Cloud Monitoring

So, you’ve got Prometheus set up to gather metrics from your cloud infrastructure, and you’re ready to make sense of all that data. That’s where Grafana steps in! Combining Prometheus with Grafana gives you powerful, real-time visualization capabilities that make monitoring your cloud environment far more intuitive.

Let’s walk through how to bring these two tools together in harmony and start creating dashboards that tell the whole story of your cloud infrastructure’s health.

Step 1: Install Grafana

First things first, we need Grafana up and running on your environment. If you haven’t installed Grafana yet, no worries—it’s a straightforward process:

1. **Download Grafana** from the [official website](https://grafana.com/grafana/download) or install it using package managers like `apt` (for Debian-based systems) or `yum` (for Red Hat-based systems).
2. **Start Grafana** using systemd or a direct binary. For instance, you can launch it with:

“`bash
sudo systemctl start grafana-server
“`

3. **Access Grafana** in your browser by navigating to `http://localhost:3000`. By default, Grafana runs on port 3000.

Once you log in (default credentials are admin/admin), you’re ready to connect it to Prometheus.

Step 2: Add Prometheus as a Data Source in Grafana

Now, let’s integrate Prometheus so that Grafana can get its hands on those valuable metrics.

1. **In Grafana**, click on the gear icon in the sidebar to access configuration settings.
2. Navigate to **Data Sources** and click **Add data source**.
3. From the list of available data sources, select **Prometheus**.
4. Next, you’ll need to provide the **URL** where Prometheus is accessible. For example, if Prometheus is running locally, you’d enter:

“`
http://localhost:9090
“`

5. Grafana will attempt to connect to Prometheus. If everything is set up correctly, you should see a success message. Click **Save & Test** to confirm Grafana is now pulling data from Prometheus.

Step 3: Create Your First Dashboard

With the connection established, it’s time to put your data to work! Grafana’s magic lies in its dashboards, where you can visualize Prometheus metrics in a way that makes sense for you.

1. **Click the “+” icon** in the Grafana sidebar and select **Dashboard**.
2. Add a new **panel** by clicking **Add a new panel**. This is where you’ll define what metrics to display.
3. In the **Query Editor** of the panel, Grafana will automatically suggest Prometheus-compatible queries. Start typing the metric name, and you’ll see suggestions like `up`, `cpu_usage`, or any custom metrics you’re collecting.
4. Customize the look and feel by selecting different visualizations like **graphs**, **gauges**, or **heatmaps**. Play around with colors, labels, and thresholds to make the panel readable and meaningful.
5. Once satisfied, click **Apply** to save the panel to your dashboard.

Step 4: Set Alerts and Notifications

Grafana isn’t just about pretty dashboards—it can also help you stay on top of critical issues by setting up alerts.

1. Select a panel where you’d like to configure an alert. Then, click the **Alert** tab.
2. Define your alert conditions based on Prometheus metrics. For example, you can set an alert to trigger if CPU usage exceeds 90% for more than 5 minutes.
3. Add a **Notification Channel** to send alerts to email, Slack, PagerDuty, or other services.

You’ll now be proactively notified if your cloud environment starts showing signs of instability.

Step 5: Fine-Tune Your Setup

Integration doesn’t stop at simply connecting the tools. To get the most value, you should:

  • **Organize dashboards** by service (e.g., one for CPU, one for memory, one for network traffic).
  • **Add annotations** to provide context, like deployments or incidents, for easier troubleshooting.
  • **Share dashboards** with your team or export them as JSON files for reuse and collaboration.

And there you go—Prometheus and Grafana are now working together as a well-oiled machine, offering you a holistic view of your cloud infrastructure. From here, you can continuously improve and expand your monitoring capabilities, ensuring you catch issues before they snowball.

Best Practices for Using Prometheus and Grafana in Cloud Environments

When it comes to monitoring your cloud infrastructure with Prometheus and Grafana, having a strategy is essential to maximizing their potential. These tools are incredibly powerful, but to leverage them fully, you need to be mindful of a few best practices. Let’s dive into some tips that will help you get the most from both monitoring and visualizing your cloud environment.

1. **Set Sensible Retention Policies**

Cloud environments generate a ton of data, and while it might be tempting to store it all forever, that could lead to performance issues or skyrocketing storage costs! Prometheus lets you configure data retention policies, which allow you to define how long you keep your metrics. Start by identifying the metrics that are the most critical to your business, then configure a retention policy that balances historical insight with resource efficiency.

2. **Leverage Labels for Granular Data Collection**

Prometheus uses labels to add dimensions to your metrics, and this feature can be a gold mine if used correctly. When you’re labeling your metrics, think about how you want to query and analyze the data later. For example, you can label by service, region, or even instance type. This makes it easier to slice and dice the data when you need to troubleshoot an issue or optimize your cloud resources. But beware: over-labeling can result in “label bloat,” which can negatively impact performance.

3. **Optimize Your Scrape Timings (Don’t Overpoll)**

Poll too often, and you’ll have an overload of data that may be difficult to manage. Poll too infrequently, and you may miss critical insights in real-time. It’s all about striking a balance. Review the criticality of each resource, and set your scrape intervals accordingly. For example, mission-critical services might get polled every 15 seconds, while less critical services can have longer intervals.

4. **Use Grafana Alerts for Proactive Monitoring**

One of the most powerful aspects of Grafana is its alerting system. You don’t want to wait until something’s broken to find out there’s a problem! Set up alerts for key performance indicators (KPIs) that matter to your cloud environment. This way, you can be proactive and address potential issues before they escalate into bigger problems. Make sure alerts are actionable—don’t overwhelm your team with too many false positives!

5. **Use Dashboards as a Single Source of Truth**

Grafana’s dashboards are not just pretty graphs—they should be your go-to for insights into your cloud infrastructure. Create dashboards that show a comprehensive, end-to-end view of your systems. Make sure your dashboards are organized logically, so at a glance, teams can understand system health, performance, and potential bottlenecks. You can even customize dashboards for different teams—DevOps might need different metrics than upper management.

6. **Ensure High Availability for Prometheus**

In cloud environments, downtime is not an option. You want your monitoring system to be just as reliable as the systems it’s monitoring. Prometheus does not have built-in high-availability (HA) by default, so make sure you configure it correctly for redundancy. Using multiple Prometheus instances, paired with load balancing and persistent storage, can help ensure that your monitoring remains online, even during outages or planned maintenance.

7. **Secure Your Setup**

Security is king in the cloud, and your monitoring setup is no exception. Ensure that both Prometheus and Grafana are properly secured using encryption (TLS), strong authentication methods, and role-based access control (RBAC). This is especially important for Grafana, as your dashboards might contain sensitive information about your infrastructure.

8. **Regularly Review and Refine Your Metrics**

Lastly, a set-it-and-forget-it approach doesn’t work here. Your cloud environment is constantly evolving, so your monitoring strategy should too. Regularly review your metrics and dashboards to ensure they’re still serving your needs. Add new metrics as your infrastructure grows and adjust existing ones based on performance insights.

  • Are you tracking the right KPIs?
  • Have new services been added that need monitoring?

Staying on top of these changes ensures that your monitoring system evolves alongside your cloud environment.