Wavefront by VMware REST API

Wavefront REST API Overview

Wavefront is a high-performance streaming analytics platform that helps you monitor and optimize your environment. The Wavefront REST API enables you to write scripts to perform Wavefront management tasks, such as defining alerts and creating events. You can use the REST API to perform any task that is supported by the Wavefront UI. The REST API is based on Swagger, so you can generate the API client of your choice (including a CLI client).

All interactions between the Wavefront UI and your Wavefront instance occur through the Wavefront management API. You can perform those actions using REST - or you can create an API client using Swagger, discussed below.

The current version of the REST API is v2. You can access the API at <wavefront_instance>/api/v2. The v1 API (<wavefront_instance>/api/>) was deprecated in 2017 and is no longer supported.

Note: The Wavefront REST API is not the same as the /api endpoint that you specify for the Wavefront proxy.

API Swagger Documentation

You can access the Wavefront REST API documentation from this VMware {code} page or directly from within your Wavefront instance.

To access the REST API documentation from within your Wavefront instance:

  1. Log in to your Wavefront instance.
  2. Display the doc from the UI or using a URL:
    • From the Wavefront UI, click the gear icon  at the top right of the task bar and select API Documentation.
    • Type https://<your_cluster_name>.com/api-docs/ui/.

Code Samples

Some code samples for getting data into Wavefront are available on the VMware code website. We’re providing these samples as is - some are from the Wavefront team, others will come from the community.

Invoke the API

If you're logged in to your Wavefront instance, you can invoke the API directly from the API Reference. See our blog Did You Know That OUr API Docs Are Alive

You can also invoke the API using curl or from an API client. In either case, you must pass in a Wavefront API token. A Wavefront API token is a string of hexadecimal characters and dashes. For example:

a411c16b-3cf7-4f03-bf11-8ca05aab898d

To generate an API token:

  1. In the Wavefront UI, click the gear icon  at the top right of the task bar and select your username.
  2. At the bottom of your user profile, locate the section API Access.
  3. Click Generate. You can have up to 2 tokens at any given time. If you want to generate a new token but already have two tokens, then you must revoke one of the existing tokens.
  4. To revoke a token, click the Revoke link next to the token. If you run a script that uses a revoked token, the script returns an authorization error.

Example: Invoke the API Using curl

With curl, you specify the API token in the Authorization: Bearer header. For example, to return all alerts, run the following command:

curl 'https://&lt;wavefront_instance&gt;/api/v2/alert' --header 'Authorization: Bearer <wavefront_api_token>'

Generate an API Client Using Swagger

Because we expose the Wavefront REST API via Swagger, you can generate a working implementation of the API for the programming language or CLI you want to use.

Note: Using the default Swagger configuration settings might result in errors. Create your own configuration file instead, as in the following example for generating a Java client:

First, create a file swagger-config.json. Here’s an example:

 {
 "modelPackage": "com.wavefront.rest.models",
 "apiPackage": "com.wavefront.rest.api.client",
 "groupId": "com.wavefront.rest.api.client",
 "artifactId": "wavefront-java-sdk",
 "artifactVersion": "19.10",
 "sourceFolder": "src/main/java",
 "java8": true,
 "dateLibrary": "java8"
}

Next, generate the client, for example:

swagger-codegen generate -i https://demo.wavefront.com/api/v2/swagger.json -c swagger-config.json -l java</code>
 

Related Documentation

;