Introduction to Extend Observability
The AccelByte Gaming Services (AGS) and Grafana Cloud integration is part of the full Extend package, available in both AGS tiers: Private Cloud and Shared Cloud. For Shared Cloud users on a free trial, you can access Grafana Cloud and all other Extend features once you unlock the tier.
Overview
AccelByte Gaming Services (AGS) Extend uses Grafana Cloud to provide you comprehensive observability dashboards for your Extend apps. With a focus on infrastructure and service health metrics, these dashboards aim to enhance your ability to monitor and troubleshoot effectively. Using the Grafana Cloud dashboards for your Extend apps, you can gain insights into your apps' performance and behavior.
For Shared Cloud users on a free trial, you can access Grafana Cloud and all other Extend features once you unlock the tier.
Extend offers Grafana Cloud dashboards for each type of Extend apps, refer to the guide for each app type:
Apart from the Extend dashboards, the AGS and Grafana Cloud integration also offers other dashboards such as Game Health dashboards, AMS Dashboard, and custom dashboards (or dashboards created based on customer request and requirements). For more information, refer to the Grafana Cloud Observability page.
Access Grafana Cloud dashboards
You can get the access link for your Grafana Cloud dashboards from the details page of your Extend apps. Follow these steps:
Go to the details page of the Extend app with the Grafana Cloud dashboard you want to view.
At the bottom of the App Detail table, click on Open Grafana Cloud. The Grafana Cloud login page is opened in a new browser tab.
On the login page, click the Sign in with Admin Portal button and use your Admin Portal credentials to log in.
To learn how to navigate Grafana Cloud dashboards, refer to the guide for each app type:
Infrastructure health metrics
We provide the following infrastructure metrics in your Grafana stack:
- App instances count & status
- CPU Utilization
- Limit
- Request
- Memory consumption
- Limit
- Request
- Storage
- Disk Space
- IOPS
- Network
- Bandwidth
- Network usage
Service health metrics
The following service metrics can be accessed in the Grafana stack:
- Request count
- gRPC
- Total request
- Total request per gRPC status code
- Request latency
- Error rates
- HTTP
- Total request
- Total 2xx request
- Total 4xx request
- Total 5xx request
- Request latency
- gRPC
- Incoming kafka events (if applicable)
- Application creation duration
- Deployment creation duration
Metrics and logs query capabilities
As a developer of your Extend app, you have the capability to see your application logs and metrics in Grafana Cloud. We provide this capability by enabling LBAC data sourcing from our central stack to be queried and retrieved from your dedicated stack. To query metrics and logs from your Grafana Cloud stack, you can follow these steps:
On the sidebar, go to the Explore section.
Grafana Cloud provides you a query editor that allows you to specify the exact metrics or log data you want to retrieve. Data sources for your application usually follow the pattern
log-<your studio name>
ormetrics-<your studio name>
. You can pick the data source for logs/metrics by accessing the dropdown on the top.To get your application data, apply the label filters. Choose the namespace label and select
extend-accelbyte-custom-service
as the value. You can also narrow down the result by utilizing the time filters.Once your queries are defined, you can execute the query using the run query button in the top-right.
Grafana Cloud will return logs and metrics based on the defined queries in JSON format.
Send logs to Grafana Cloud
You can send logs from your Extend app to Grafana Cloud by writing the logs to standard output.
- Go
- C#
- Java
- Python
// Import required package
import (
"github.com/sirupsen/logrus"
)
// Write log
logrus.Infof("your log message")
Use ILogger<YourClassName>
object in your gRPC service implementation class to write logs.
// Import namespace
using Microsoft.Extensions.Logging;
// Declare private logger object
private readonly ILogger<YourClassName> _Logger;
// Get logger object in constructor
public YourClassName(
...
ILogger<YourClassName> logger,
...
)
{
...
_Logger = logger;
...
}
// Use it within the method
_Logger.LogInformation("your log message");
// Import Slf4j package
import lombok.extern.slf4j.Slf4j;
// Add Slf4J annotation to your service class
@Slf4j
// Use it within the method
log.info("your log message");
For more information about Slf4j annotation, refer to the Project Lombok documentation.
# Import logger
from logging import Logger
# init logger in service class
def __init__(
..., logger: Optional[Logger], ...
) -> None:
...
self.logger = logger
...
# Use it within the function
self.logger.info("your log message")
Visualization
As an Extend app developer, you can visualize the health of an Extend service by utilizing the available dashboards. After your Extend app is provisioned, you can expect the following canned dashboards to be created:
Dashboards
Dashboards will be accessible in the following path: https://<your-grafana-dedicated-stack>.grafana.net/dashboards
. As an example, your stack URL might be like this: https://accelbyte12345.grafana.net/dashboards
Custom metrics
You will have the ability to annotate and publish your service-specific metrics to help gain further insights into your app's performance. These metrics will be the metrics that you choose to expose and the metrics that are supplied by the Extend platform. Support and documentation for these metrics will be added soon.