Listening to Apigee Edge Events

Hello Community,

Does Apigee Edge issue any kind of events for the following scenarios:

  1. New Proxy Created
  2. Proxy Deployed
  3. Proxy Revision Updated
  4. New Product Created
  5. ...

Is there a way we can tap and listen for these events ? Any pointers/approach to meet my requirement will help

Solved Solved
0 4 246
1 ACCEPTED SOLUTION

No, there are no webhooks for such events.

You can Poll the audit log for information on that.

I've written some polling logic... that posts to Slack. It's pretty straightforward.

What specifically are you hoping to do?

View solution in original post

4 REPLIES 4

No, there are no webhooks for such events.

You can Poll the audit log for information on that.

I've written some polling logic... that posts to Slack. It's pretty straightforward.

What specifically are you hoping to do?

I am hoping to update an Incident Management Database which needs to track all deployed proxies, etc.

When a monitoring system issues an outage alert, a ticket should be created against the appropriate incident items.

So essentially, i need to feed events to an incident management system. I would have preferred it to be a "push" .

I did think of tapping into the CI system while it makes a deployment but that would completely ignore any deployments made through the UI.

So, you are parsing the audit logs i guess?

"parsing the audit logs"

Well really it's just querying the audit log kept by Apigee Edge. The audit log record format is JSON. There's not a ton of parsing. The audit log record looks like:


 {
   "operation": "CREATE",
   "request": "''Prod2''",
   "requestUri": "/v1/organizations/ORG/developers/W3523a/apps/gd1/keys/TLRc5m/apiproducts/Prod2?action=approve",
   "responseCode": "204",
   "timeStamp": 1449688834257,
   "user": "DChiesa@apigee.com"
 },
 {
    "operation": "CREATE",
    "request": "''ap-parityapi''",
    "requestUri": "/v1/organizations/ORG/reports/aa35a9f6-07140612eb1e/",
    "responseCode": "201",
    "timeStamp": 1455046522101,
    "user": "DChiesa@apigee.com"
 },
 {
    "operation": "CREATE",
    "request": "''ap-parityapi''",
    "requestUri": "/v1/organizations/ORG/environments/main/apis/test14/revisions/20/debugsessions/1455043863266/?session=1455043863266&timeout=600",
    "responseCode": "201",
    "timeStamp": 1455043864283,
    "user": "gdingle@example.com"
 },

That sample shows:

  • creation of an app with authorization for a specific product
  • creation of a report
  • creation of a debugsession (Trace session)

There are obviously other requestUri values for other types of changes - deployment of a Proxy, and so on.

After querying the records, you can select and filter among them and do what you need to do.

But just my perspective: copying "a proxy was deployed" into an incident mgmt database doesn't seem like it would be super helpful. You're just duplicating information, aren't you?

Oh i know, and thats the first thing i said when the request was made.

But i need to keep this in my backup arsenal just in case.

I can see the rationale behind the request though. Ideally it should log the incident of an outage but there is also a need to track the asset on which the incident is being raised. When someone uses the word "compliance", i just tend to nod 🙂