Deploying Data Ingestion Framework

This tutorial walks you through the process of deploying Data Ingestion Framework (DIF) to your environment. A successful deployment confirms that you have a valid environment for ingesting DIF data to Turbonomic.

DIF pairs a JSON schema with Turbonomic. You deploy a DIF web server and configure it as a Turbonomic target. DIF retrieves the data that your target delivers and uses it to add custom entities to the Turbonomic supply chain. This tutorial shows you how to deploy these components.

Task overview

To deploy DIF, perform the following tasks:

  1. Set up a DIF web server.

  2. Create the JSON data object for a custom entity that you add to the Turbonomic supply chain.

  3. Configure your web server as a DIF target in Turbonomic.

  4. Check the custom entity in the supply chain.

For examples of DIF JSON files and the full DIF JSON topology and entity schemas, see this topic.

Setting Up a DIF web server

A DIF web server is a data repository that can return a JSON string on request. The request must be a static URL that Turbonomic can use to retrieve DIF data at regular intervals. Be sure that the URL endpoint returns your JSON data.

For this tutorial, the JSON data is static, so you can serve it from any HTTP or HTTPS web server that Turbonomic can access.

As you set up the web server, be sure that the following requirements are met:

  • Your web server must be accessible to Turbonomic directly or through a proxy.

  • You must be able to create a new directory and upload a JSON file to the web server.

  • Your web server must have a static address. In a real-world deployment, the static address ensures that the same web server is available for the long term.

After setting up the web server, create the www/dif/ directory for the JSON data.

Creating the JSON data object

For this tutorial, you will add a custom Business Application named 'Hello World Tutorial' to the Turbonomic supply chain.

In the www/dif/ directory that you created, create a file named HelloWorld.json and then copy the following data object to the file.

{
  "version": "v1",
  "updateTime": 123,
  "scope": "Tutorial",
  "source": "",
  "topology" : [
    {
      "uniqueId": "Hello_World_BusinessApp",
      "type": "businessApplication",
      "name": "Hello World Tutorial"
    }
  ]
}

The data object begins with basic information, such as version, updateTime (time of latest update), and other descriptors. The updateTime property is important to consider. In a real-world use case, you periodically update your data to capture changes in your environment. As you update your data, post the updateTime as well. This value might be useful for debugging if your management process stops updating the data. For this tutorial, any arbitrary value is sufficient.

Note:

For complete information, see the Schema Object description for Topology Object.

Specify the following properties for the supply chain topology:

  • uniqueId

    This property identifies the custom entity among all other instances of that entity in your topology. Because the ID must be globally unique, use naming conventions that express a namespace for the topology segment that you are creating.

  • type

    Since you will create a Business Application in this tutorial, specify businessApplication.

    DIF currently supports the following entity types:

    • businessApplication

    • businessTransaction

    • service

    • databaseServer

    • application

  • name

    This property specifies a meaningful display name for the entity. This display name is not required to be unique. For this tutorial, specify Hello World Tutorial.

An entity can include other properties, such as resource utilization metrics or relationships to other entities in the supply chain topology. This tutorial does not explore any of these properties.

After you save the file, your web server must be able to serve the JSON data. To validate this functionality, run the following command:

curl {your_domain}/dif/HelloWorld.json

For example:

curl MyDomain.com/dif/HelloWorld.json

The curl output shows the data object in the JSON file.

Configuring your web server as a DIF target in Turbonomic

  1. In the Turbonomic user interface, click Settings > Target Configuration.

  2. Click New Target > Custom.

  3. Select Data Ingestion Framework.

  4. Configure the following settings:

    • URL

      Specify the HTTP location and file name of the JSON data for this target, such as http://MyDomain.com/dif/HelloWorld.json.

    • Name

      Specify a name that uniquely identifies this connection.

      This name is for display purposes only, such as My_Custom_Application.

    • Prometurbo version

      If this target integrates with Prometurbo to collect application performance metrics, specify the Prometurbo release version.

After adding the target, navigate to Settings > Target Configuration. A new target named My_Custom_Application appears in the list. The status for this target indicates if the validation was successful. If the validation was unsuccessful, check if the URL you specified returns the JSON data and if the data is valid for the DIF schema.

Checking the custom entity in the supply chain

Your custom Business Application appears in the supply chain within 10 minutes of adding the DIF target.

In Turbonomic, navigate to Search and select Business Applications. In the Search field, specify Hello World Tutorial. The Hello World Tutorial entity appears in the list. Click that entity to set it as your supply chain scope.

The Supply Chain

This tutorial shows the simplest possible implementation of DIF. For a real-world use case, create a larger supply chain composed of several custom entities. Consider including resource utilization metrics for these entities in the DIF data.