Google Remote Procedure Call (gRPC) Monitor
gRPC is an open-source, high-performance remote procedure call (RPC) framework that operates on all IT environments. This framework helps in creating scalable APIs and also enables faster client-server communication. With Site24x7's gRPC monitoring, you can run Health Checks to ensure the availability of your gRPC services and the functionality of all the related services.
The two features supported under gRPC monitoring are:
- Health Status Checks
Health Status Checks help to ensure whether a configured service is in the serving state or to validate whether a service is available for receiving the RPC calls. These checks will be conducted based on the configured check frequencies. - Behavior or Functionality Checks
To get a Behavior or Functionality Check done, you can submit a .proto file with details related to the specific gRPC endpoint. These checks will check the performance of the endpoints by using the input message configured for the specific method, and they will be conducted based on the configured check frequencies.
Use cases
Can I monitor a streaming platform that renders data in real time?
Yes, you can use Site24x7's gRPC monitor to track whether the client-server communication is working well by ensuring that the data is rendering and confirming whether the gRPC endpoints are available. You can configure Health Status Checks for this purpose.
How can you track the performance of your application using gRPC monitoring?
You can check the performance of your application using Behavior or Functionality Checks. These checks can help you in validating the availability of your service, track the RPC time, as well as ensure the presence of an expected output.
Will you be able to receive alerts when your application goes down?
Yes, you can configure the alert settings to receive notifications in your preferred mode, when the status of your monitor is down.
Will you be able to receive alerts when RPC time exceeds the configured threshold?
Yes. You can configure a threshold for the RPC time under Configuration Profiles. When breached, an alert notification will be sent to you.
How can you validate the gRPC response?
You can validate the gRPC response from the application against a JSONPath expression by specifying the JSONPath assertion. You can also verify whether the gRPC trailers are present in the response or check if the values match with the desired response using the Should Contain gRPC Trailer(s) field.
Table of Contents
Add a gRPC monitor
General Settings
- Log in to Site24x7.
- Click Admin > Inventory > Monitors > Add Monitor.
- Select gRPC from the list of monitors on the Add Monitor page.
- Specify the following details to add the monitor:
- Display Name: Provide an appropriate name for the gRPC endpoint which you want to monitor.
- Host and Port: Provide the host name of the gRPC endpoint and the port which the gRPC service is listening to.
- Use Secure Connection (SSL): Use the toggle button to enable or disable a secure SSL connection.
- Proto File: Upload a .proto file with details related to your gRPC service or endpoint.
- Service: Provide or select the name of the gRPC service for which you would like to check the health status or invoke the method in it.
- Method: Select the name of the method you would like to invoke with the customized input message.
- Message: Provide or generate the input message for the selected service's method.
- Check Frequency: Choose the required polling frequency. The frequency can be set from 30 seconds to 1 day. 30 seconds can be configured if you're using Enterprise, Enterprise Web, Enterprise Plus Web, Elite, and Elite Web Packs. For all other users, 1 minute will be the minimum supported check frequency.
Configuring 30 seconds check frequency will consume the license of two basic monitors. - Monitoring Locations: Select a location profile from the dropdown list from where the website will be monitored. To know more, refer Location Profile.
- Content Checks
- JSONPath Expression: You can specify a JSONPath assertion and test an expected data in the JSON response. For a successful test, the assertion must successfully parse the JSON Path in the JSON. If you need help to build a JSONPath assertion to test against your JSON response, you can use Site24x7 JSONpath evaluator. You can always add multiple such JSONPath assertions to test individual use cases. Use the + button to add more expression assertions.
- JSONPath Severity: You can specify the alert severity as Down or Trouble. When the JSONPath assertion fails during a test, an alert will automatically be triggered.
- Should Contain gRPC Trailer(s): Enter the desired trailer name and values for your gRPC call and verify whether the gRPC trailers are present or the values match with the desired response. You can opt to trigger a Trouble or Down alert during a check failure. While configuring the gRPC trailer check, you must add values based on the following conditions:
- You can add multiple trailers and each trailer can accept multiple values.
- A single value can be configured with or without double quotes (e.g. keep-alive or "keep-alive").
- In case you have multiple trailer values configured, you will have to separate them with a space and also use double quotes for each of them (e.g. "gzip" "br").
- Trailer value can also support regex validation. The regex pattern should be "${}". For example : ${\d{4}} can be used to search for four continuous digit numerical values in the value of the trailer configured in the trailer name.
- gRPC Trailers Severity: Use the toggle button to specify the alert severity as Down or Trouble. When the test fails, an alert will automatically be triggered.
- gRPC Configuration
- gRPC Metadata: Metadata is information about an RPC call in the form of key-value pairs. You can customize the default gRPC metadata. In such cases, the additional metadata name and value can be added. Default gRPC Metadata that will be sent by Site24x7 is as follows:
user-agent: Site24x7 grpc-java-okhttp/1.49.1
content-type: application/grpc
te: trailers
grpc-accept-encoding: gzip
grpc-timeout: 598906m - Authentication Methods: Manage multiple authorization methods for your monitors.
- Basic/NTLM: Configure your Basic/NTLM based authorization. Windows NTLM is the authentication protocol used on systems running on Windows OS.
- Credentials: Specify your Username and Password for gRPC Endpoint requiring Basic/NTLM based authentication.
- OAuth: Pick the OAuth radio button, if you're monitoring a resource that is secured by OAuth framework.
- OAuth Provider Name: Select the OAuth Provider Name from your preconfigured list or create a new OAuth profile by clicking the + button. Learn how to configure an OAuth Provider.
- Web Token: Register Site24x7 with your authentication server to monitor protected resources using web tokens. Learn how to add a Web Token.
- Client Certificate: For the gRPC endpoint that requires client certificate authentication, upload the client certificate (must be a PKCS#12 file).
- gRPC Metadata: Metadata is information about an RPC call in the form of key-value pairs. You can customize the default gRPC metadata. In such cases, the additional metadata name and value can be added. Default gRPC Metadata that will be sent by Site24x7 is as follows:
- Advanced Configuration
- Connection Timeout: Specify the time in seconds needed to establish a connection with the target server. If the connection is not established within the specified time, the monitor will be reported as down with "Could not establish connection" as the reason.
- Prefer IPv6: If you want to monitor your gRPC endpoint over IPv6-enabled locations, simply move the toggle button to Yes while creating or editing a monitor. Site24x7 lets you monitor your dual-stacked IPv4/IPv6-based infrastructure as needed. IPv4 will be enabled as the default protocol. You'll be able to monitor your IPv6 infrastructure once you enable the rocker button to IPv6. If the connectivity over IPv6 fails, it will not fall back to IPv4 automatically. Read more.
Enabling IPv6 in the monitoring form doesn't make it compatible to monitor IPv4, by default. If you want to monitor a resource that is compatible with both IPv4 and IPv6–you'll have to set up two separate monitor checks for this. - Dependent Resource: Select a monitor from the drop-down list to choose it as your dependent resource. Alerts to your monitor will be suppressed based on the Down status of your dependent resource. Configuring a dependent resource and suppressing alerts based on the dependent resource's status is part of providing you with better false alerts protection. Learn more about alert suppression at monitor level.
If you select None in the Dependent Resource field, alerting will progress as per your normal configuration settings. No alerts will be suppressed in this case as the monitor doesn't have any dependent resource. - Monitor Groups: Multiple monitor group support for monitors allow a monitor to be associated with multiple dependent resources in different monitor groups. If during a normal monitor status check, the status of any of these dependent resources is identified as Down, the alert for the monitor will automatically be suppressed. However, the dependency configuration at monitor level is always given a higher priority over any other monitor group level dependency configuration for suppressing alerts.
- Check Availability: Once you fill in all the mandatory details, you can use the option to test the configurations you've created. Service testing helps you to drill deep into code and get hands-on experience. In case of configuration errors, you can resolve them and retry.
- Configuration Profiles
- Threshold and Availability: Select a threshold profile from the drop-down or choose the default threshold available and get notified when the resources cross the configured threshold and availability. Learn more. To create a customized threshold and availability profile, refer Threshold and Availability.
- Tags: Associate your monitor with predefined tag(s) to help organize and manage your monitors creatively. Learn more.
- IT Automation Templates: Select an automation to be executed when the website is Down/in Trouble/Up/any status change/any attribute change. The defined action gets executed when there is a state change and the selected user groups will be alerted. Learn more.
- Execute IT Automation during Scheduled Maintenance: Configuring a scheduled maintenance window allows you to suppress alerts for select IT resources during routine maintenance tasks. Select the check box to enable the option to execute IT automations—script executions, server commands, and more—during this period.
- Alert Settings:
- User Alert Group: Select the user group that need to be alerted during a outage. To add multiple users in a group, see User Alert Group.
- On-Call Schedule: The On-Call Schedule option helps you to ensure that the notifications are sent to assignees during specific shift hours, helping them to respond to alerts or incidents quickly. Choose an On-Call of your preference from the drop-down.
- Notification Profile: Choose a notification profile from the drop-down or select the default profile available. A notification profile helps to configure when and who needs to be notified in case of downtime. Refer Notification Profile to create a customized notification profile. You can receive alerts if the monitors are associated with user groups, irrespective of the On-Call shift you've configured.
- Third-Party Integrations: Associate your monitor with a pre-configured third-party service. This lets you push your monitor alarms to selected services and facilitates improved incident management. If you haven't set up any integrations yet, navigate to Admin > Third-Party Integration to create one. Tell me more.
- Click Save. You can click Check and Save if you want to run the configurations and see whether the monitor is performing well and then get the monitor saved. In case of an error, the monitor will not be saved. Once the monitor setup is completed, the Site24x7 deep discovery wizard scans your domain and auto-detects all related internet resources for your domain that can be added to your account for comprehensive internet services monitoring. Explore more about internet services deep discovery.