Skip to content

prashmeh/apigee-monitoring-extension

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Apigee Monitoring Extension for AppDynamics

For use with Apigee Edge on SaaS and on-premise

Use Case

Apigee is an API management platform that enables developers and businesses to design, secure, deploy, monitor, and scale APIs. This extension makes it possible for AppDynamics customers to monitor the performance of Apigee API proxies (or services as some people prefer to call it).Apigee performance metrics in AppDynamics will help customers to quickly isolate the root cause of a performance issue - whether it is Apigee's overhead and/or the backend (target) service.

Metrics that are collected for each API proxy are :

  1. Response Time: Total number of milliseconds it took to respond to a call. This time includes the Apigee API proxy overhead and your target server time.
  2. Target Response Time: Number of milliseconds it took your target server to respond to a call. This number tells you how your own servers are behaving.
  3. Request Processing Latency: Number of milliseconds from the time when a call reaches the selected API proxy to the time when Apigee sends the call to your target server.

Prerequisite

  1. This extension works only with the standalone Java machine agent.
  2. Analytics module must be enabled in Apigee
  3. Create a service account in Apigee that has read access to all ALL the API proxies you would like to monitor in AppDynamics
  4. jq must be installed on the server running the machine agent - https://stedolan.github.io/jq/download/

Installation

  1. Unzip the attached file into $MACHINE_AGENT_HOME/monitors
  2. Using your favourite text editor, open config.json and fill in the connection details

Note: user_proxy_filter, when set to true will ONLY send API performance metrics for the predefined proxies in the apiproxy.conf file. if set to false, performance data for ALL apigee proxies will be sent.

  1. Make the script executable: chmod +x apigee_monitor.sh
  2. Test it: ./apigee_monitor.sh
  3. If everything is OK, you should see an output in stdout that is similar to this:
==> from 01/23/2018+22:53:40 to 01/23/2018+23:03:40 
   curl -X GET   https://api.enterprise.apigee.com/v1/organizations/io/environments/test/stats/apiproxy?_optimized=js&realtime=true&limit=300&select=sum(message_count),avg(total_response_time),avg(target_response_time),avg(request_processing_latency),sum(is_error)&sort=DESC&sortby=sum(message_count),avg(total_response_time),sum(is_error)&timeRange=01/23/2018+22:53:40~01/23/2018+23:03:40&timeUnit=minute&tsAscending=true

 ==> 200
 name=Custom Metrics|Apigee|Proxies|[proxy name]|Availability, value=1
 name=Custom Metrics|Apigee|Proxies|[proxy name]|Average Response Time, value=501
 name=Custom Metrics|Apigee|Proxies|[proxy name]|Request Processing Latency, value=25
 name=Custom Metrics|Apigee|Proxies|[proxy name]|Target Response Time, value=474
  1. Restart the machine agent

Custom Dashboard

The custom dashboard below shows 2 API proxy performance metrics - with their respective SLAs

Dash

Metrics are located in Application Infrastructure Performance | Tier_NAME| Custom Metrics | Apigee |*

Dash

Troubleshooting

Review $MACHINE_AGENT_HOME/logs/apigee-monitor.log

Send a manaul curl request to your apigee instance to verify it's working

Contribution guidelines

  • Fork and submit PR

Packages

No packages published

Languages

  • Shell 100.0%