Aviate Health APIs

The Aviate Health feature provides several endpoints that allow you to view the health of your KillBill system and fix problems if any. This section documents the APIs exposed by the Aviate Health feature.

Models

MetricsResult

Represents metric result. It has the following fields:

Name Type Generated by Description
nodeName string system Name of the node for which data is being captured.
eventGroup string system Represents the metric type. Possible values are gauge/meter/timer
eventCategory string system Represents the metric name.
sampleKind string system Represents the sample kind. Possible values are value/count/{one_minute/five_minute/fifteen_minute}_rate/mean_rate/tp99/tp999/tp75/tp98/tp95/min/max/count/median/std_dev
sampleSerializationFormat string system Sample Serialization Format . Hardcoded to csv at the time of writing
samples string system Comma separated list of timestamp and data value.

HealthData

Represents HealthData. It has the following fields:

Name Type Generated by Description
nodeInfos List of NodeInfo system Details on all nodes in the Kill Bill cluster.
parkedAccounts List of ParkedAccount system Parked accounts (limit 50), if any.
lateBusEvents List of BusEvent system Bus events that need processing (limit 100), if any.
lateNotifications List of Notification system Notifications that need processing (limit 100), if any.
recentBusEvents List of BusEvent system Recent bus events that were processed (limit 100).
recentNotifications List of Notification system Recent notifications that were processed (limit 100).
recentAccessLogs List of AccessLog system Recent HTTP requests from all nodes (at most 2 days).

AccessLog

Represents an Access Log. Captures information about the recent requests made to KB. It has the following fields:

Name Type Generated by Description
nodeName string system Node name
hostName string system Host name
timeStamp string system Datetime at which the request was made
method string system HTTP method used
uri string system Requested URI
statusCode string system Status code returned
bytesSent string system Number of bytes sent

Notification

Represents a notification from the KB notifications table. It has the following fields:

Name Type Generated by Description
recordId string system Record id
className string system Class name
eventJson string system Event JSON
userToken string system User token
createdDate string system DateTime the notification was created
creatingOwner string system Creating Owner
processingOwner string system Processing Owner
processingAvailableDate string system DateTime the notification becomes available for processing
processingState string system Processing State (One of AVAILABLE, IN_PROCESSING, PROCESSED, REMOVED, FAILED, REAPED)
errorCount string system Error Count
searchKey1 string system Search Key 1
searchKey2 string system Search Key 2
queueName string system Queue Name
effectiveDate string system Effective Date
futureUserToken string system Future User Token

BusEvent

Represents a Bus event from the KB bus_events table. It has the following fields:

Name Type Generated by Description
recordId string system Record id
className string system Class name
eventJson string system Event JSON
userToken string system User token
createdDate string system DateTime the bus event was created
creatingOwner string system Creating Owner
processingOwner string system Processing Owner
processingAvailableDate string system DateTime the bus event becomes available for processing
processingState string system Processing State (One of AVAILABLE, IN_PROCESSING, PROCESSED, REMOVED, FAILED, REAPED)
errorCount string system Error Count
searchKey1 string system Search Key 1
searchKey2 string system Search Key 2

NodeInfo

Represents information about a KB node. It has the following fields:

Name Type Generated by Description
time int system Time
kbClock string system TODO
nodeName string system Node Name
bootTime string system Boot Time
lastUpdatedDate string system Last Updated Date
killbillVersion string system KB version
apiVersion string system killbill-api version
platformVersion string system killbill-platform version
commonVersion string system killbill-commons version
pluginApiVersion string system killbill-plugin-api version
pluginInfos List of PluginInfo system Information about plugins on a node

PluginInfo

Represents information about a plugin. It has the following fields:

Name Type Generated by Description
pluginKey string system Plugin Key
bundleSymbolicName string system Bundle Symbolic Name
pluginName string system Plugin Name
version string system Plugin Version
pluginState string system Plugin State
isSelectedForStart boolean system Flag that indicates if plugin is started
services List of PluginServiceInfo Information about services within a plugin

PluginServiceInfo

Represents information about services offered by a plugin. It has the following fields:

Name Type Generated by Description
serviceTypeName string system Service Type
registrationName string system Bundle Registration Name

Endpoints

Retrieve Health Data

Return the current HealthData report. It is meant to show the current health of the cluster, show debugging information, and draw attention to potential problems.

HTTP Request

GET /plugins/aviate-plugin/v1/health/data

Example Request:

curl -X GET \
     -H 'Authorization: Bearer ${ID_TOKEN}' \     
     -H 'X-killbill-apiKey: bob' \
     -H 'X-killbill-apisecret: lazar' \
     http://127.0.0.1:8080/plugins/aviate-plugin/v1/health/data

Example Response:

{
  "nodeInfos": [
    {
      "time": 1732797874123,
      "kbClock": "2024-11-28T12:44:34.076252400",
      "nodeName": "DESKTOP-NCUS49R",
      "bootTime": "2024-11-28T12:37:23.000Z",
      "lastUpdatedDate": "2024-11-28T12:37:23.000Z",
      "killbillVersion": "0.24.12-SNAPSHOT",
      "apiVersion": "0.54.0",
      "platformVersion": "0.41.11",
      "commonVersion": "0.26.4",
      "pluginApiVersion": "0.27.3",
      "pluginInfos": [
        {
          "pluginKey": "aviate",
          "bundleSymbolicName": "com.kill-bill.billing.plugin.java.aviate-plugin",
          "pluginName": "aviate-plugin",
          "version": "1.0.13-SNAPSHOT",
          "pluginState": "RUNNING",
          "isSelectedForStart": true,
          "services": [
            {
              "serviceTypeName": "org.killbill.billing.osgi.api.Healthcheck",
              "registrationName": "aviate-plugin"
            },
            {
              "serviceTypeName": "javax.servlet.Servlet",
              "registrationName": "aviate-plugin"
            }
          ]
        },
        {
          "pluginKey": "",
          "bundleSymbolicName": "org.kill-bill.billing.killbill-platform-osgi-bundles-kpm",
          "pluginName": "org.kill-bill.billing.killbill-platform-osgi-bundles-kpm",
          "version": "",
          "pluginState": "RUNNING",
          "isSelectedForStart": true,
          "services": []
        },
        {
          "pluginKey": "",
          "bundleSymbolicName": "org.kill-bill.billing.killbill-platform-osgi-bundles-logger",
          "pluginName": "org.kill-bill.billing.killbill-platform-osgi-bundles-logger",
          "version": "",
          "pluginState": "RUNNING",
          "isSelectedForStart": true,
          "services": []
        },
        {
          "pluginKey": "",
          "bundleSymbolicName": "org.kill-bill.billing.killbill-platform-osgi-bundles-metrics",
          "pluginName": "org.kill-bill.billing.killbill-platform-osgi-bundles-metrics",
          "version": "",
          "pluginState": "RUNNING",
          "isSelectedForStart": true,
          "services": []
        },
        {
          "pluginKey": "",
          "bundleSymbolicName": "org.kill-bill.billing.plugin.java.stripe-plugin",
          "pluginName": "stripe-plugin",
          "version": "8.0.1",
          "pluginState": "RUNNING",
          "isSelectedForStart": true,
          "services": [
            {
              "serviceTypeName": "org.killbill.billing.payment.plugin.api.PaymentPluginApi",
              "registrationName": "killbill-stripe"
            },
            {
              "serviceTypeName": "org.killbill.billing.osgi.api.Healthcheck",
              "registrationName": "killbill-stripe"
            },
            {
              "serviceTypeName": "javax.servlet.Servlet",
              "registrationName": "killbill-stripe"
            }
          ]
        }
      ]
    }
  ],
  "parkedAccounts": [],
  "lateBusEvents": [
    {
      "recordId": 1,
      "className": "org.killbill.billing.tenant.api.user.DefaultTenantConfigChangeInternalEvent",
      "eventJson": "{\"id\":\"85edc9d5-8683-434f-bfd5-ef2ebd7ab9b3\",\"key\":\"CATALOG\",\"searchKey1\":null,\"searchKey2\":1,\"userToken\":\"c4fe88f8-36c3-461d-8ace-0f0a7efc1a42\"}",
      "userToken": "c4fe88f8-36c3-461d-8ace-0f0a7efc1a42",
      "createdDate": "2024-01-30T06:38:25.000Z",
      "creatingOwner": "DESKTOP-NCUS49R",
      "processingOwner": "",
      "processingAvailableDate": "2024-01-30T06:38:25.000Z",
      "processingState": "PROCESSED",
      "errorCount": 0,
      "searchKey1": 0,
      "searchKey2": 1
    }
  ],
  "lateNotifications": [],
  "recentBusEvents": [
    {
      "recordId": 184174,
      "className": "org.killbill.billing.util.broadcast.DefaultBroadcastInternalEvent",
      "eventJson": "{\"serviceName\":\"broadcast-service\",\"type\":\"START_PLUGIN\",\"jsonEvent\":\"{\\\"pluginKey\\\":\\\"aviate\\\",\\\"pluginName\\\":null,\\\"pluginVersion\\\":\\\"1.0.13-d197203\\\",\\\"properties\\\":[{\\\"key\\\":\\\"kbVersion\\\",\\\"value\\\":\\\"0.24.12-SNAPSHOT\\\"}]}\",\"searchKey1\":null,\"searchKey2\":0,\"userToken\":null}",
      "userToken": "",
      "createdDate": "2024-11-28T04:21:37.000Z",
      "creatingOwner": "DESKTOP-NCUS49R",
      "processingOwner": "",
      "processingAvailableDate": "2024-11-28T04:21:37.000Z",
      "processingState": "PROCESSED",
      "errorCount": 0,
      "searchKey1": 0,
      "searchKey2": 0
    },
    {
      "recordId": 184173,
      "className": "org.killbill.billing.util.broadcast.DefaultBroadcastInternalEvent",
      "eventJson": "{\"serviceName\":\"broadcast-service\",\"type\":\"INSTALL_PLUGIN\",\"jsonEvent\":\"{\\\"pluginKey\\\":\\\"aviate\\\",\\\"pluginName\\\":null,\\\"pluginVersion\\\":\\\"1.0.13-d197203\\\",\\\"properties\\\":[{\\\"key\\\":\\\"pluginUri\\\",\\\"value\\\":\\\"https://dl.cloudsmith.io/Y9NsUe0Lb5JBOnwf/killbill/aviate/maven/com/kill-bill/billing/plugin/java/aviate-plugin/1.0.13-d197203/aviate-plugin-1.0.13-d197203.jar\\\"},{\\\"key\\\":\\\"pluginType\\\",\\\"value\\\":\\\"java\\\"},{\\\"key\\\":\\\"kbVersion\\\",\\\"value\\\":\\\"0.24.12-SNAPSHOT\\\"}]}\",\"searchKey1\":null,\"searchKey2\":0,\"userToken\":null}",
      "userToken": "",
      "createdDate": "2024-11-28T04:21:32.000Z",
      "creatingOwner": "DESKTOP-NCUS49R",
      "processingOwner": "",
      "processingAvailableDate": "2024-11-28T04:21:32.000Z",
      "processingState": "PROCESSED",
      "errorCount": 0,
      "searchKey1": 0,
      "searchKey2": 0
    }
  ],
  "recentAccessLogs": [
    {
      "nodeName": "DESKTOP-NCUS49R",
      "hostName": "127.0.0.1",
      "timestamp": "27/Nov/2024:10:58:21 +0530",
      "method": "GET",
      "uri": "/1.0/kb/security/subject",
      "statusCode": "401",
      "bytesSent": "-"
    },
    {
      "nodeName": "DESKTOP-NCUS49R",
      "hostName": "127.0.0.1",
      "timestamp": "27/Nov/2024:10:58:34 +0530",
      "method": "GET",
      "uri": "/1.0/kb/security/permissions",
      "statusCode": "200",
      "bytesSent": "7"
    }
  ]
}

Request Body

None

Query Parameters

None

Response

If successful, returns a HealthData object.

Retrieve Metrics

This endpoint returns metric data. This data can be used to assess the health of the system and gain visibility into it. The metrics are computed by the aviate plugin when the com.killbill.billing.plugin.aviate.enableHealthReporter property is set to true. Each metric is a timeseries that can be analyzed and/or displayed.

Some metrics are global to the deployment (i.e. independent of the number of Kill Bill nodes/containers deployed) and some others are per-node - in which case the nodeName parameter can be used to return metrics for a specific node.

All the metrics exposed by the Aviate Plugin are documented here.

HTTP Request

GET /plugins/aviate-plugin/v1/health/metrics

Example Request:

# Returns metric data for the queue.bus.incoming,queue.bus.processing, queue.bus.late for the duration 2024-12-19T00:00:00 to 2025-01-04T11:59:00 with HOURLY granularity 
curl -X GET \
     -H 'Content-Type: application/json' \
     -H 'Authorization: Bearer ${ID_TOKEN}' \     
     -H 'X-killbill-apiKey: bob' \
     -H 'X-killbill-apisecret: lazar' \
     http://127.0.0.1:8080/plugins/aviate-plugin/v1/health/metrics?from=2024-12-19T00:00:00&to=2025-01-04T11:59:00&metricName=queue.bus.incoming&metricName=queue.bus.processing&metricName=queue.bus.late&granularity=HOUR'

# Returns the metric data for the logs.rates.error metric on the ip-172-31-6-87 node
curl -X GET \
     -H 'Content-Type: application/json' \
     -H 'Authorization: Bearer ${ID_TOKEN}' \     
     -H 'X-killbill-apiKey: bob' \
     -H 'X-killbill-apisecret: lazar' \
     http://127.0.0.1:8080/plugins/aviate-plugin/v1/health/metrics?nodeName=ip-172-31-6-87&name=logs.rates.error'  

# Returns metric data for the logs.rates.error metric for all the nodes:
curl -X GET \
     -H 'Content-Type: application/json' \
     -H 'Authorization: Bearer ${ID_TOKEN}' \     
     -H 'X-killbill-apiKey: bob' \
     -H 'X-killbill-apisecret: lazar' \
     http://127.0.0.1:8080/plugins/aviate-plugin/v1/health/metrics?name=logs.rates.error'   

# Returns metric data for the queue.bus.incoming metric for all the nodes (nodeName is ignored since queue.bus.incoming is a global metric):
curl -X GET \
     -H 'Content-Type: application/json' \
     -H 'Authorization: Bearer ${ID_TOKEN}' \     
     -H 'X-killbill-apiKey: bob' \
     -H 'X-killbill-apisecret: lazar' \
     http://127.0.0.1:8080/plugins/aviate-plugin/v1/health/metrics?nodeName=ip-172-31-6-87&name=queue.bus.incoming' 

Example Response:

[
  {
    "nodeName": "",
    "eventGroup": "gauge",
    "eventCategory": "queue.bus.late",
    "sampleKind": "value",
    "samplesSerializationFormat": "csv",
    "samples": "1736394067,0,1736394129,0,1736394189,0,1736394249,0,1736394309,0,1736394369,0,1736394429,0,1736394490,0,1736394550,0,1736394610,0,1736394670,0,1736394730,0,1736394790,0,1736394851,0,1736394911,0,1736394971,0,1736395031,0,1736395091,0,1736395151,0,1736395211,0,1736395272,0,1736395332,0,1736395392,0,1736395452,0,1736395512,0,1736395572,0,1736395632,0,1736395692,0,1736395753,0,1736395813,0,1736395873,0,1736395933,0,1736395993,0,1736396053,0,1736396113,0,1736396174,0,1736396234,0,1736396294,0,1736396354,0,1736396414,0,1736396474,0,1736396534,0,1736396595,0,1736396655,0,1736396715,0,1736396775,0,1736396835,0,1736396895,0,1736396955,0,1736397016,0,1736397076,0,1736397136,0,1736397196,0,1736397256,0,1736397316,0,1736397377,0,1736397437,0,1736397497,0,1736397557,0,1736397617,0,1736397677,0,1736397738,0,1736397798,0,1736397858,0,1736397918,0,1736397978,0,1736398038,0,1736398099,0,1736398159,0,1736398219,0,1736398279,0,1736398339,0,1736398399,0,1736398460,0,1736398520,0,1736398580,0"
  }
]

Request Body

None

Query Parameters

Name Type Required Default Description
from string false none DateTime from which to start including metric data in yyyy-dd-MMThh:mm:ss format. If omitted, all the data since the aviate plugin started computing metrics is returned.
to string false Current time DateTime up to which metric data should be included in yyyy-dd-MMThh:mm:ss format. If omitted, all the data up to the current DateTime is returned.
nodeName List of String false None Specifies the name of the node for which metric data should be returned. This parameter applies only to node-specific metrics. When provided, it retrieves metric data for the specified node. For global metrics, this parameter is ignored, global data is returned regardless of the node. If omitted for a node-specific metric, metric data for all nodes will be returned. To specify multiple nodes, include a separate nodeName parameter for each node.
metricName List of String false None Name of the metric for which to return data.(See list below). To obtain data for multiple metrics, include a separate metricName parameter for each metric.
granularity SampleGranularity false MINUTE Specifies the time unit for the intervals between consecutive data points. One of MINUTE, HOUR, DAY)

Response

If successful, returns a status code of 200 and the requested metric data.

Retrieve Diagnostic Report

This endpoint generates a diagnostic report. The report includes logs, tenant config, Kill Bill & system config, and account data, similar to the kpm diagnostic tool, either as JSON or as a ZIP file.

A few pointers:

HTTP Request

GET /plugins/aviate-plugin/v1/health/diagnostic

Example Request:

## Example 1 - Returns data for the specified account in JSON format
curl -X GET \
     -H 'Authorization: Bearer ${ID_TOKEN}' \     
     -H 'X-killbill-apiKey: bob' \
     -H 'X-killbill-apisecret: lazar' \
     http://127.0.0.1:8080/plugins/aviate-plugin/v1/health/diagnostic?accountId=af65531a-fc2e-43cd-8af1-6ec0709d9700

## Example 2 - Creates a zip file. Includes account information, Kill Bill configuration data and tenant configuration data
curl -X GET \
     -H 'Authorization: Bearer ${ID_TOKEN}' \     
     -H 'X-killbill-apiKey: bob' \
     -H 'X-killbill-apisecret: lazar' \
     -H "Accept: application/zip" \
     "http://127.0.0.1:8080/plugins/aviate-plugin/v1/health/diagnostic?accountId=af65531a-fc2e-43cd-8af1-6ec0709d9700&withKillbillConfig=true&withTenantConfig=true" -JO

## Example 3 - Creates a zip file. Includes account information and the catalina.2024-11-27.log and localhost_access_log.2024-11-27.txt logs from the Tomcat directory.
curl -X GET \
     -H 'Authorization: Bearer ${ID_TOKEN}' \     
     -H 'X-killbill-apiKey: bob' \
     -H 'X-killbill-apisecret: lazar' \
     -H "Accept: application/zip"  \
     "http://127.0.0.1:8080/plugins/aviate-plugin/v1/health/diagnostic?accountId=68704a87-23d8-46db-a1ba-310daa8e1f4f&withLogs=true&logsFilenames=catalina.2024-11-27.log&logsFilenames=localhost_access_log.2024-11-27.txt" -JO

## Example 4- Creates a zip file. Includes account information and the killbill.out/kaui.out log files from the /var/lib/killbill/logs directory.
curl -X GET \
     -H 'Authorization: Bearer ${ID_TOKEN}' \     
     -H 'X-killbill-apiKey: bob' \
     -H 'X-killbill-apisecret: lazar' \
     -H "Accept: application/zip"  \
     "http://127.0.0.1:8080/plugins/aviate-plugin/v1/health/diagnostic?accountId=68704a87-23d8-46db-a1ba-310daa8e1f4f&withLogs=true&logsDir=/var/lib/killbill/logs&logsFilenames=killbill.out&logsFilenames=kaui.out" -JO

Example Response:

{
  "account.data": "-- account_history record_id|id|target_record_id|external_key|email|name|first_name_length|currency|billing_cycle_day_local|parent_account_id|is_payment_delegated_to_parent|payment_method_id|reference_time|time_zone|locale|address1|address2|company_name|city|state_or_province|country|postal_code|phone|notes|migrated|change_type|created_by|created_date|updated_by|updated_date|tenant_record_id\n12999|402d7c14-0318-4706-b110-eff813d59ce2|7077|user29Nov1||||USD|0||||2024-11-29T04:11:51.000+00:00|Etc/UTC|en_US||||||US||||false|INSERT|admin|2024-11-29T04:11:51.000+00:00|admin|2024-11-29T04:11:51.000+00:00|4621\n-- accounts record_id|id|external_key|email|name|first_name_length|currency|billing_cycle_day_local|parent_account_id|is_payment_delegated_to_parent|payment_method_id|reference_time|time_zone|locale|address1|address2|company_name|city|state_or_province|country|postal_code|phone|notes|migrated|created_date|created_by|updated_date|updated_by|tenant_record_id\n7077|68704a87-23d8-46db-a1ba-310daa8e1f4f|user29Nov1||||USD|0||||2024-11-29T04:11:51.000+00:00|Etc/UTC|en_US||||||US||||false|2024-11-29T04:11:51.000+00:00|admin|2024-11-29T04:11:51.000+00:00|admin|4621\n-- audit_log record_id|id|target_record_id|table_name|change_type|created_date|created_by|reason_code|comments|user_token|account_record_id|tenant_record_id\n525321|0d34f135-5a72-4acc-90d9-7e8615717cf0|12999|ACCOUNT_HISTORY|INSERT|2024-11-29T04:11:51.000+00:00|admin|||1b557c51-4a01-45d0-977b-49cd27810153|7077|4621\n-- bus_events_history record_id|class_name|event_json|user_token|created_date|creating_owner|processing_owner|processing_available_date|processing_state|error_count|search_key1|search_key2\n184177|org.killbill.billing.account.api.user.DefaultAccountCreationEvent|{\"data\":{\"externalKey\":\"user29Nov1\",\"name\":\"user29Nov1\",\"firstNameLength\":null,\"email\":null,\"billCycleDayLocal\":0,\"currency\":\"USD\",\"parentAccountId\":null,\"isPaymentDelegatedToParent\":null,\"paymentMethodId\":null,\"referenceTime\":\"2024-11-29T04:11:51.000Z\",\"timeZone\":\"Etc/UTC\",\"locale\":\"en_US\",\"address1\":null,\"address2\":null,\"companyName\":null,\"city\":null,\"stateOrProvince\":null,\"postalCode\":null,\"country\":\"US\",\"phone\":null,\"notes\":null,\"isMigrated\":false},\"id\":\"68704a87-23d8-46db-a1ba-310daa8e1f4f\",\"searchKey1\":7077,\"searchKey2\":4621,\"userToken\":\"1b557c51-4a01-45d0-977b-49cd27810153\"}|1b557c51-4a01-45d0-977b-49cd27810153|2024-11-29T04:11:51.000+00:00|DESKTOP-NCUS49R|DESKTOP-NCUS49R|2024-11-29T04:11:51.000+00:00|PROCESSED|0|7077|4621\n-- bus_ext_events_history record_id|class_name|event_json|user_token|created_date|creating_owner|processing_owner|processing_available_date|processing_state|error_count|search_key1|search_key2\n182535|org.killbill.billing.beatrix.extbus.DefaultBusExternalEvent|{\"objectId\":\"68704a87-23d8-46db-a1ba-310daa8e1f4f\",\"objectType\":\"ACCOUNT\",\"eventType\":\"ACCOUNT_CREATION\",\"accountId\":\"68704a87-23d8-46db-a1ba-310daa8e1f4f\",\"tenantId\":\"a7ac9384-f2aa-42cb-8367-9f298d228fae\",\"metaData\":null}|1b557c51-4a01-45d0-977b-49cd27810153|2024-11-29T04:11:51.000+00:00|DESKTOP-NCUS49R|DESKTOP-NCUS49R|2024-11-29T04:11:51.000+00:00|PROCESSED|0|7077|4621\n",
  "tenant_config.data": [
    {
      "key": "CATALOG",
      "values": [
        "<catalog-xml-here>"
      ]
    },
    {
      "key": "INVOICE_TRANSLATION_fr_FR",
      "values": [
        "invoiceTitle=FACTURE\ninvoiceDate=Date:\ninvoiceNumber=Facture #"
      ]
    }
  ],
  "killbill_configuration.data": {
    "awt.toolkit": "sun.awt.windows.WToolkit",
    "java.specification.version": "11",
    "org.killbill.server.updateCheck.url": "https://raw.github.com/killbill/killbill/master/profiles/killbill/src/main/resources/update-checker/killbill-server-update-list.properties",
    "sun.cpu.isalist": "amd64",
    "sun.jnu.encoding": "Cp1252",
    "org.killbill.billing.plugin.kpm.bundlesPath": "D:/var/tmp/bundles",
    "java.naming.provider.url": "rmi://127.0.0.1:1099",
    "sun.arch.data.model": "64",
    "org.killbill.billing.plugin.auth.adminUsername": "admin",
    "org.killbill.billing.plugin.kpm.kpmPath": "D:/Software/Ruby27-x64/bin/kpm.bat",
    "org.killbill.billing.plugin.auth.adminPassword": "*****",
    "com.killbill.billing.plugin.aviate.enableUsageApis": "false",
    "kaui.db.password": "*****",
    "org.killbill.server.lookupEnvironmentVariables": "true",
    "shared.loader": "",
    "java.util.logging.manager": "org.apache.juli.ClassLoaderLogManager",
    "org.killbill.persistent.bus.external.tableName": "bus_ext_events",
    "java.vm.info": "mixed mode",
    "java.vm.version": "11.0.6+8-LTS",
    "java.class.version": "55.0"
  }
}

Request Body

None

Query Parameters

Name Type Required Default Description
accountId UUID false none Account Id for which to create the diagnostic report
withTenantConfig boolean false false If specified, includes per-tenant configuration properties (like catalog, overdue, etc.)
withSystemConfig boolean false false If specified, includes system information (KB/Kaui version, environment variables, OS information, CPU information, memory information, disk information, etc).
withKillbillConfig boolean false false If specified, includes the global Kill Bill configuration properties
withHealthData boolean false false If specified, includes health data.
withLogs boolean false false If specified, includes the logs specified via the logsDir parameter. If logsDir is not specified, includes the Tomcat logs. In either case, only the log files specified via logFileNames are included.
logsSize int false 5242880 Desired log size. Applicable only if withLogs=true is specifed.
logsDir string false The value of com.killbill.billing.plugin.aviate.logsPath if specified or TOMCAT_HOME/logs (TOMCAT_HOME is determined using the catalina.base system property The directory from which to include the logs. Works only if withLogs=true is specifed.
logsFilenames List of String false catalina.out Desired log file names. Works only if withLogs=true is specifed. Multiple log file names can be specified by specifying a separate logsFilenames parameter corresponding to each value

Response

If successful, returns a status code of 200 and the requested diagnostic data.