Running D1 health checks via REST API
Monitoring D1 status with the /check
endpoint
To make sure that D1 is running as expected, you can send a request to the /tribefire-services/api/v1/check
endpoint of your D1 instance.
Sample cURL call
curl --request GET http://[ADX_HOST]:[PORT]/tribefire-services/api/v1/check?sessionId=ADX_SESSION_ID --header "Accept: application/json"
Replace the following items in the above call:
[ADX_HOST]:[PORT]
- replace with the domain name hosting your Conversion Service instance (for exampleadx-host.com
oradx-host:8080.com
)[ADX_SESSION_ID]
- replace with a valid D1 session ID. See Authentication for information on how to get a session ID.--header "Accept: application/json"
- this part of the call controls how the output is returned. You can also usetext/html
ortext/plain
for HTML and plain text output, respectively.
Response and interpretation
You will get a long response as a result, which includes a number of checks related to the base platform and D1 itself: database connectivity, thread pools, and D1 functionality are checked.
You need to verify the check status
of all components, which should read ok
, as in "checkStatus": "ok"
.
If you get a warn
or fail
status, it indicates a problem within the reporting component.
{"_type": "com.braintribe.model.deploymentapi.check.data.CheckBundlesResponse", "_id": "0",
"elapsedTimeInMs": 1250.6271,
"elements": [
{"_type": "com.braintribe.model.deploymentapi.check.data.aggr.CheckBundleResult", "_id": "1",
"check": {"_type": "tribefire.adx.model.deployment.cmis.check.CmisConnectivityCheckProcessor", "_id": "2",
"autoDeploy": true,
"deploymentStatus": "deployed",
"externalId": "processor.adx.cmis-connectivity-check",
"globalId": "wire://AdxCmisInitializerWireModule/AdxCmisInitializerDataSpace/connectivityCheckProcessor",
"id": "wire://AdxCmisInitializerWireModule/AdxCmisInitializerDataSpace/connectivityCheckProcessor",
"name": "D1 CMIS Connectivity Check Processor",
"partition": "cortex"
},
"coverage": "connectivity",
"isPlatformRelevant": false,
"module": {"_type": "com.braintribe.model.deployment.Module", "_id": "3",
"bindsDeployables": true,
"bindsHardwired": false,
"bindsInitializers": false,
"bindsWireContracts": false,
"globalId": "module://tribefire.adx.phoenix:adx-cmis-module",
"id": "module://tribefire.adx.phoenix:adx-cmis-module",
"name": "adx-cmis-module",
"partition": "cortex"
},
"name": "D1 CMIS Connectivity Checks",
"node": "adx@DESKTOP-J07TD08#200720151955598c4700f3a48d468c9f",
"result": {"_type": "com.braintribe.model.check.service.CheckResult", "_id": "4",
"elapsedTimeInMs": 8.6313,
"entries": [
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "5",
"checkStatus": "ok",
"details": "No deployed connections found.",
"detailsAsMarkdown": false,
"name": "D1 CMIS Connections"
}
]
},
"status": "ok",
"weight": "under10s"
},
{"_type": "com.braintribe.model.deploymentapi.check.data.aggr.CheckBundleResult", "_id": "6",
"check": {"_type": "tribefire.adx.model.deployment.healthcheck.ConnectivityCheckProcessor", "_id": "7",
"autoDeploy": true,
"deploymentStatus": "deployed",
"externalId": "adx.check.connectivity",
"globalId": "wire://AdxInitializerWireModule/AdxInitializerDataSpace/connectivityCheckProcessor",
"id": "wire://AdxInitializerWireModule/AdxInitializerDataSpace/connectivityCheckProcessor",
"name": "D1 Connectivity Check Processor",
"partition": "cortex"
},
"coverage": "connectivity",
"isPlatformRelevant": false,
"module": {"_type": "com.braintribe.model.deployment.Module", "_id": "8",
"bindsDeployables": true,
"bindsHardwired": false,
"bindsInitializers": false,
"bindsWireContracts": false,
"globalId": "module://tribefire.adx.phoenix:adx-module",
"id": "module://tribefire.adx.phoenix:adx-module",
"name": "adx-module",
"partition": "cortex"
},
"name": "D1 Connectivity Checks",
"node": "adx@DESKTOP-J07TD08#200720151955598c4700f3a48d468c9f",
"result": {"_type": "com.braintribe.model.check.service.CheckResult", "_id": "9",
"elapsedTimeInMs": 387.917,
"entries": [
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "10",
"checkStatus": "ok",
"details": "Type | Repository | Accessible | Response Time | Session Created\n--- | --- | --- | --- | ---\nSTANDARD | Default | true | 0 ms | true\n",
"detailsAsMarkdown": true,
"name": "Active Repositories"
}
]
},
"status": "ok",
"weight": "under10s"
},
{"_type": "com.braintribe.model.deploymentapi.check.data.aggr.CheckBundleResult", "_id": "11",
"check": {"_type": "tribefire.adx.model.deployment.documentum.check.DctmConnectivityCheckProcessor", "_id": "12",
"autoDeploy": true,
"deploymentStatus": "deployed",
"externalId": "processor.adx.documentum-connectivity-check",
"globalId": "wire://AdxDocumentumInitializerWireModule/AdxDocumentumInitializerDataSpace/connectivityCheckProcessor",
"id": "wire://AdxDocumentumInitializerWireModule/AdxDocumentumInitializerDataSpace/connectivityCheckProcessor",
"name": "D1 Documentum Connectivity Check Processor",
"partition": "cortex"
},
"coverage": "connectivity",
"isPlatformRelevant": false,
"module": {"_type": "com.braintribe.model.deployment.Module", "_id": "13",
"bindsDeployables": true,
"bindsHardwired": false,
"bindsInitializers": false,
"bindsWireContracts": false,
"globalId": "module://tribefire.adx.phoenix:adx-documentum-module",
"id": "module://tribefire.adx.phoenix:adx-documentum-module",
"name": "adx-documentum-module",
"partition": "cortex"
},
"name": "D1 Documentum Connectivity Checks",
"node": "adx@DESKTOP-J07TD08#200720151955598c4700f3a48d468c9f",
"result": {"_type": "com.braintribe.model.check.service.CheckResult", "_id": "14",
"elapsedTimeInMs": 11.4634,
"entries": [
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "15",
"checkStatus": "ok",
"details": "No deployed connections found.",
"detailsAsMarkdown": false,
"name": "D1 CMIS Connections"
}
]
},
"status": "ok",
"weight": "under10s"
},
{"_type": "com.braintribe.model.deploymentapi.check.data.aggr.CheckBundleResult", "_id": "16",
"check": {"_type": "tribefire.adx.model.deployment.healthcheck.FunctionalityCheckProcessor", "_id": "17",
"autoDeploy": true,
"deploymentStatus": "deployed",
"externalId": "adx.check.functionality",
"globalId": "wire://AdxInitializerWireModule/AdxInitializerDataSpace/functionalityCheckProcessor",
"id": "wire://AdxInitializerWireModule/AdxInitializerDataSpace/functionalityCheckProcessor",
"name": "D1 Functionality Check Processor",
"partition": "cortex"
},
"coverage": "functional",
"isPlatformRelevant": false,
"module": {"_ref": "8"},
"name": "D1 Functionality Checks",
"node": "adx@DESKTOP-J07TD08#200720151955598c4700f3a48d468c9f",
"result": {"_type": "com.braintribe.model.check.service.CheckResult", "_id": "18",
"elapsedTimeInMs": 16.1388,
"entries": [
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "19",
"checkStatus": "ok",
"details": "Repository | Info\n--- | ---\nTotal | 2\nActive | 1\nInactive | 1\nSTANDARD (active) | 1\n",
"detailsAsMarkdown": true,
"name": "Repositories"
},
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "20",
"checkStatus": "ok",
"details": "Number of Hibernate Accesses of active repositories: 2",
"detailsAsMarkdown": false,
"name": "Hibernate Accesses"
},
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "21",
"checkStatus": "ok",
"details": "Type | Repository | Path | Exists\n--- | --- | --- | ---\nStandard | Default | C:\\Users\\Grzeynick\\Documents\\adx23\\repository\\content | true\nStandard (Cache) | Default | C:\\Users\\Grzeynick\\Documents\\adx23\\repository\\cache | true\n",
"detailsAsMarkdown": true,
"name": "File Systems"
},
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "22",
"checkStatus": "ok",
"details": "Repository | Deployment Status | Details\n--- | --- | ---\nDefault | ok | 35 Deployables\n",
"detailsAsMarkdown": true,
"name": "Deployment Status"
}
]
},
"status": "ok",
"weight": "under1s"
},
{"_type": "com.braintribe.model.deploymentapi.check.data.aggr.CheckBundleResult", "_id": "23",
"check": {"_type": "tribefire.adx.model.deployment.repository.check.AdxGcpConnectivityCheckProcessor", "_id": "24",
"autoDeploy": true,
"deploymentStatus": "deployed",
"externalId": "processor.adx.gcp-connectivity-check",
"globalId": "wire://AdxGcpInitializerWireModule/AdxGcpInitializerDataSpace/connectivityCheckProcessor",
"id": "wire://AdxGcpInitializerWireModule/AdxGcpInitializerDataSpace/connectivityCheckProcessor",
"module": {"_type": "com.braintribe.model.deployment.Module", "_id": "25",
"bindsDeployables": true,
"bindsHardwired": false,
"bindsInitializers": false,
"bindsWireContracts": false,
"globalId": "module://tribefire.adx.phoenix:adx-gcp-module",
"id": "module://tribefire.adx.phoenix:adx-gcp-module",
"name": "adx-gcp-module",
"partition": "cortex"
},
"name": "D1 GCP Connectivity Check Processor",
"partition": "cortex"
},
"coverage": "connectivity",
"isPlatformRelevant": false,
"module": {"_ref": "25"},
"name": "D1 GCP Connectivity Checks",
"node": "adx@DESKTOP-J07TD08#200720151955598c4700f3a48d468c9f",
"result": {"_type": "com.braintribe.model.check.service.CheckResult", "_id": "26",
"elapsedTimeInMs": 339.5783,
"entries": [
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "27",
"checkStatus": "ok",
"details": "No deployed connections found.",
"detailsAsMarkdown": false,
"name": "D1 GCP Connections"
}
]
},
"status": "ok",
"weight": "under10s"
},
{"_type": "com.braintribe.model.deploymentapi.check.data.aggr.CheckBundleResult", "_id": "28",
"check": {"_type": "com.braintribe.model.aws.deployment.processor.HealthCheckProcessor", "_id": "29",
"autoDeploy": true,
"deploymentStatus": "deployed",
"externalId": "aws.healthcheck",
"globalId": "wire://AwsInitializerModuleWireModule/AwsInitializerModuleSpace/healthCheckProcessor",
"id": "wire://AwsInitializerModuleWireModule/AwsInitializerModuleSpace/healthCheckProcessor",
"module": {"_type": "com.braintribe.model.deployment.Module", "_id": "30",
"bindsDeployables": true,
"bindsHardwired": false,
"bindsInitializers": false,
"bindsWireContracts": false,
"globalId": "module://tribefire.extension.aws:aws-module",
"id": "module://tribefire.extension.aws:aws-module",
"name": "aws-module",
"partition": "cortex"
},
"name": "AWS Check Processor",
"partition": "cortex"
},
"coverage": "connectivity",
"isPlatformRelevant": false,
"module": {"_ref": "30"},
"name": "AWS Checks",
"node": "adx@DESKTOP-J07TD08#200720151955598c4700f3a48d468c9f",
"result": {"_type": "com.braintribe.model.check.service.CheckResult", "_id": "31",
"elapsedTimeInMs": 0.9973,
"entries": [
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "32",
"checkStatus": "ok",
"details": "No deployed connections found.",
"detailsAsMarkdown": false,
"name": "S3 Connections"
}
]
},
"status": "ok",
"weight": "under1s"
},
{"_type": "com.braintribe.model.deploymentapi.check.data.aggr.CheckBundleResult", "_id": "33",
"check": {"_type": "com.braintribe.model.extensiondeployment.check.HardwiredCheckProcessor", "_id": "34",
"autoDeploy": true,
"deploymentStatus": "deployed",
"externalId": "checkProcessor.hardwired.BaseConnectivityCheckProcessor",
"globalId": "hardwired:check/BaseConnectivityCheckProcessor",
"id": "hardwired:check/BaseConnectivityCheckProcessor",
"module": {"_type": "com.braintribe.model.deployment.Module", "_id": "35",
"bindsDeployables": false,
"bindsHardwired": false,
"bindsInitializers": false,
"bindsWireContracts": false,
"globalId": "module://platform",
"id": "module://platform",
"name": "tribefire-web-platform",
"partition": "cortex"
},
"name": "Base Connectivity Check Processor",
"partition": "cortex"
},
"coverage": "connectivity",
"isPlatformRelevant": false,
"name": "Base Platform Connectivity Checks",
"node": "adx@DESKTOP-J07TD08#200720151955598c4700f3a48d468c9f",
"result": {"_type": "com.braintribe.model.check.service.CheckResult", "_id": "36",
"elapsedTimeInMs": 11.1001,
"entries": [
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "37",
"checkStatus": "ok",
"details": "Type | Valid | Check duration\n--- | --- | ---\nLeadership | true | 1 ms\nLock | true | 0 ms\n",
"detailsAsMarkdown": true,
"name": "System Databases"
},
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "38",
"checkStatus": "ok",
"details": "Name | Idle Connections | Threads Waiting | Active Connections | Total Connections | Max Pool Size\n--- | --- | --- | --- | --- | ---\nconnection.user-sessions|1|0|0|1|20\nconnection.default|2|0|1|3|20\nconnection.auth|1|0|0|1|10\nconnection.locking|1|0|0|1|10\nconnection.adx.cache.default|0|1|0|0|20\nconnection.leadership|1|0|0|1|5\nconnection.user-session-statistics|1|0|0|1|10\nconnection.adx.content.default|0|0|0|0|20\n",
"detailsAsMarkdown": true,
"name": "Connection Pools"
},
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "39",
"checkStatus": "ok",
"details": "Name | Message Transit Duration\n--- | ---\nDMB Messaging | 6 ms 26100 ns\n",
"detailsAsMarkdown": true,
"name": "Messaging"
}
]
},
"status": "ok"
},
{"_type": "com.braintribe.model.deploymentapi.check.data.aggr.CheckBundleResult", "_id": "40",
"check": {"_type": "com.braintribe.model.extensiondeployment.check.HardwiredCheckProcessor", "_id": "41",
"autoDeploy": true,
"deploymentStatus": "deployed",
"externalId": "checkProcessor.hardwired.BaseFunctionalityCheckProcessor",
"globalId": "hardwired:check/BaseFunctionalityCheckProcessor",
"id": "hardwired:check/BaseFunctionalityCheckProcessor",
"module": {"_ref": "35"},
"name": "Base Functionality Check Processor",
"partition": "cortex"
},
"coverage": "functional",
"isPlatformRelevant": false,
"name": "Base Platform Functionality Checks",
"node": "adx@DESKTOP-J07TD08#200720151955598c4700f3a48d468c9f",
"result": {"_type": "com.braintribe.model.check.service.CheckResult", "_id": "42",
"elapsedTimeInMs": 5.1022,
"entries": [
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "43",
"checkStatus": "ok",
"details": "---|---\nLock Manager|DB Lock Manager\n",
"detailsAsMarkdown": true,
"name": "Lock Check"
},
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "44",
"checkStatus": "ok",
"details": "---|---\nLeadership Manager|DB Leadership Manager\n",
"detailsAsMarkdown": true,
"name": "Leadership Check"
},
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "45",
"checkStatus": "ok",
"details": "---|---\nIssued to|Braintribe Technology GmbH\nIssued by|Braintribe\nExpiration|01 Apr 2021\n",
"detailsAsMarkdown": true,
"name": "License"
},
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "46",
"checkStatus": "ok",
"details": "Name|Active Threads|Total Executions|Average Execution Time|Pool Size|Core Pool Size|Maximum Pool Size|Pending Tasks in Queue|Average Pending Time in Queue|Time Since Last Execution\n---|---|---|---|---|---|---|---|---|---\nADx Documents Cleanup|0|0|0 ms|0|3|3|0|0 ms|0 ms\nADx Generic|0|0|0 ms|0|10|10|0|0 ms|0 ms\nActivation|0|1|550 ms|0|5|5|0|0.53 ms|2 d\nCartridge Evaluator|0|0|0 ms|0|40|40|0|0 ms|0 ms\nCheckBundleExecution|5|324|83 ms|5|5|20|3|16.53 ms|2 ms\nDatabase Connection Check|0|0|0 ms|0|1|10|0|0 ms|0 ms\nDmb Message Consumer (adx.tf.queue.trustedRequest)|1|1|0 ms|1|1|1|0|0 ms|2 d\nDmb Message Consumer (adx.tf.topic.heartbeat)|1|1|0 ms|1|1|1|0|0 ms|2 d\nDmb Message Consumer (adx.tf.topic.multicastRequest)|1|1|0 ms|1|1|1|0|0 ms|2 d\nDmb Message Consumer (adx.tf.topic.multicastResponse)|1|1|0 ms|1|1|1|0|0 ms|2 d\nDocument Retrieval|0|0|0 ms|0|50|50|0|0 ms|0 ms\nDocuments Cleanup|0|0|0 ms|0|3|3|0|0 ms|0 ms\nDocuments Download|0|0|0 ms|0|50|50|0|0 ms|0 ms\nDocuments-Conversion Upload|0|0|0 ms|0|30|30|0|0 ms|0 ms\nJava Common Pool|0|-1|-1 ms|0|0|0|0| |0 ms\nJob Cleanup|0|0|0 ms|0|3|3|0|0 ms|0 ms\nLeadership Daemon|0|145511|255 ms|1|1|unbound|1|0 ms|89 ms\nMBean Message Reaper|1|1|0 ms|1|1|1|0|0 ms|2 d\nMaster Heartbeat Sender|0|14636|0 ms|1|1|unbound|1|0 ms|5 s\nMaster Messaging Service|0|0|0 ms|0|20|20|0|0 ms|0 ms\nMaster Multicast Consumer|1|1|0 ms|1|20|20|0|0 ms|2 d\nMaster RPC Service|0|40|737 ms|20|20|unbound|0|0.38 ms|4 h\nPlatform Thread-Pool|7|21|1408 ms|7|100|100|0|0.61 ms|2 d\nRemote Evaluator|0|1|642 ms|0|100|100|0|0.38 ms|1 d\nScheduled System Executor|2|14742|8 ms|10|10|unbound|2|0.68 ms|1 ms\nScheduled Thread Pool|0|245|1 ms|2|5|unbound|1|0 ms|27 s\nState Change Processing (Aspect)|0|0|0 ms|0|20|20|0|0 ms|0 ms\nState Change Processing (Audit Workbench)|0|0|0 ms|0|20|20|0|0 ms|0 ms\nState Change Processing (Audit)|0|0|0 ms|0|20|20|0|0 ms|0 ms\nState Change Processing (Authentication and Authorization Workbench)|0|0|0 ms|0|20|20|0|0 ms|0 ms\nState Change Processing (Cortex Workbench)|0|0|0 ms|0|20|20|0|0 ms|0 ms\nState Change Processing (Cortex)|0|0|0 ms|0|20|20|0|0 ms|0 ms\nState Change Processing (Incremental Access Listener)|0|0|0 ms|0|20|20|0|0 ms|0 ms\nState Change Processing (Platform Setup Workbench)|0|0|0 ms|0|20|20|0|0 ms|0 ms\nState Change Processing (Platform Setup)|0|0|0 ms|0|20|20|0|0 ms|0 ms\nState Change Processing (User Sessions Workbench)|0|0|0 ms|0|20|20|0|0 ms|0 ms\nState Change Processing (User Statistics Workbench)|0|0|0 ms|0|20|20|0|0 ms|0 ms\nState Change Processing (Workbench)|0|0|0 ms|0|20|20|0|0 ms|0 ms\n",
"detailsAsMarkdown": true,
"name": "Thread Pools"
}
]
},
"status": "ok"
},
{"_type": "com.braintribe.model.deploymentapi.check.data.aggr.CheckBundleResult", "_id": "47",
"check": {"_type": "com.braintribe.model.extensiondeployment.check.HardwiredCheckProcessor", "_id": "48",
"autoDeploy": true,
"deploymentStatus": "deployed",
"externalId": "checkProcessor.hardwired.BaseVitalityCheckProcessor",
"globalId": "hardwired:check/BaseVitalityCheckProcessor",
"id": "hardwired:check/BaseVitalityCheckProcessor",
"module": {"_ref": "35"},
"name": "Base Vitality Check Processor",
"partition": "cortex"
},
"coverage": "vitality",
"isPlatformRelevant": true,
"name": "Base Platform Vitality Checks",
"node": "adx@DESKTOP-J07TD08#200720151955598c4700f3a48d468c9f",
"result": {"_type": "com.braintribe.model.check.service.CheckResult", "_id": "49",
"elapsedTimeInMs": 0.131,
"entries": [
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "50",
"checkStatus": "ok",
"details": "Check infrastructure is ok",
"detailsAsMarkdown": false,
"name": "Base Check"
}
]
},
"status": "ok"
},
{"_type": "com.braintribe.model.deploymentapi.check.data.aggr.CheckBundleResult", "_id": "51",
"check": {"_type": "com.braintribe.model.documents.HealthCheckProcessor", "_id": "52",
"autoDeploy": true,
"deploymentStatus": "deployed",
"documentsAccessId": "access.adx.cache.default",
"documentsProcessorId": "custom:documents.serviceProcessor",
"externalId": "health-check-processor.tribefire.adx.phoenix.adx-cartridge/-cache-space/documents-acces-template-context/repository/default.documents-templates-space.health-check-processor",
"globalId": "wire://tribefire.adx.phoenix.adx-cartridge/CacheSpace/documentsAccesTemplateContext/repository/default/DocumentsTemplatesSpace/healthCheckProcessor",
"id": "wire://tribefire.adx.phoenix.adx-cartridge/CacheSpace/documentsAccesTemplateContext/repository/default/DocumentsTemplatesSpace/healthCheckProcessor",
"module": {"_type": "com.braintribe.model.deployment.Module", "_id": "53",
"bindsDeployables": true,
"bindsHardwired": false,
"bindsInitializers": false,
"bindsWireContracts": false,
"globalId": "module://tribefire.extension.documents:documents-module",
"id": "module://tribefire.extension.documents:documents-module",
"name": "documents-module",
"partition": "cortex"
},
"name": "Documents Check Processor default",
"partition": "cortex"
},
"coverage": "functional",
"isPlatformRelevant": false,
"module": {"_ref": "53"},
"name": "Documents Checks",
"node": "adx@DESKTOP-J07TD08#200720151955598c4700f3a48d468c9f",
"result": {"_type": "com.braintribe.model.check.service.CheckResult", "_id": "54",
"elapsedTimeInMs": 78.3109,
"entries": [
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "55",
"checkStatus": "ok",
"details": "Checking availability of Documents Access access.adx.cache.default.",
"detailsAsMarkdown": false,
"name": "Documents Access Check"
},
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "56",
"checkStatus": "ok",
"details": "Jobs currently processing/waiting: 0",
"detailsAsMarkdown": false,
"name": "Open Jobs"
}
]
},
"status": "ok",
"weight": "under1s"
},
{"_type": "com.braintribe.model.deploymentapi.check.data.aggr.CheckBundleResult", "_id": "57",
"check": {"_type": "com.braintribe.model.elasticsearchdeployment.service.HealthCheckProcessor", "_id": "58",
"autoDeploy": true,
"deploymentStatus": "deployed",
"externalId": "elasticsearch.healthzProcessor",
"globalId": "wire://ElasticsearchInitializerModuleWireModule/ElasticsearchInitializerModuleSpace/healthCheckProcessor",
"id": "wire://ElasticsearchInitializerModuleWireModule/ElasticsearchInitializerModuleSpace/healthCheckProcessor",
"module": {"_type": "com.braintribe.model.deployment.Module", "_id": "59",
"bindsDeployables": true,
"bindsHardwired": false,
"bindsInitializers": false,
"bindsWireContracts": false,
"globalId": "module://tribefire.extension.elastic:elasticsearch-module",
"id": "module://tribefire.extension.elastic:elasticsearch-module",
"name": "elasticsearch-module",
"partition": "cortex"
},
"name": "Elastic Check Processor",
"partition": "cortex"
},
"coverage": "functional",
"isPlatformRelevant": false,
"module": {"_ref": "59"},
"name": "Elastic Checks",
"node": "adx@DESKTOP-J07TD08#200720151955598c4700f3a48d468c9f",
"result": {"_type": "com.braintribe.model.check.service.CheckResult", "_id": "60",
"elapsedTimeInMs": 3.8001,
"entries": [
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "61",
"checkStatus": "ok",
"details": "Name | Address | Connectivity\n--- | --- | ---\nADx Content ElasticSearch Connection: \tDefault | 127.0.0.1:9300 | true\n",
"detailsAsMarkdown": true,
"name": "Check Elastic Service Availability"
},
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "62",
"checkStatus": "ok",
"details": "Name | Index | Active Workers | Enqueued | Max. Active Runtime | Packages Indexed | Entities Indexed\n--- | --- | --- | --- | --- | --- | ---\nworker.adx.content-elasticsearch.default | elastic-index-default | 0/2 | 0/1000 | 0 ms | 2 | 2\n",
"detailsAsMarkdown": true,
"name": "Elastic Indexing Workers"
}
]
},
"status": "ok",
"weight": "under1s"
},
{"_type": "com.braintribe.model.deploymentapi.check.data.aggr.CheckBundleResult", "_id": "63",
"check": {"_type": "com.braintribe.model.gcp.deployment.HealthCheckProcessor", "_id": "64",
"autoDeploy": true,
"deploymentStatus": "deployed",
"externalId": "gcp.healthcheck",
"globalId": "wire://GcpInitializerModuleWireModule/GcpInitializerModuleSpace/healthCheckProcessor",
"id": "wire://GcpInitializerModuleWireModule/GcpInitializerModuleSpace/healthCheckProcessor",
"module": {"_type": "com.braintribe.model.deployment.Module", "_id": "65",
"bindsDeployables": true,
"bindsHardwired": false,
"bindsInitializers": false,
"bindsWireContracts": false,
"globalId": "module://tribefire.extension.gcp:gcp-module",
"id": "module://tribefire.extension.gcp:gcp-module",
"name": "gcp-module",
"partition": "cortex"
},
"name": "GCP Check Processor",
"partition": "cortex"
},
"coverage": "connectivity",
"isPlatformRelevant": false,
"module": {"_ref": "65"},
"name": "GCP Checks",
"node": "adx@DESKTOP-J07TD08#200720151955598c4700f3a48d468c9f",
"result": {"_type": "com.braintribe.model.check.service.CheckResult", "_id": "66",
"elapsedTimeInMs": 2.615,
"entries": [
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "67",
"checkStatus": "ok",
"details": "No deployed connections found.",
"detailsAsMarkdown": false,
"name": "GCP Connections"
}
]
},
"status": "ok",
"weight": "under1s"
},
{"_type": "com.braintribe.model.deploymentapi.check.data.aggr.CheckBundleResult", "_id": "68",
"check": {"_type": "com.braintribe.model.wopi.service.WacHealthCheckProcessor", "_id": "69",
"autoDeploy": true,
"deploymentStatus": "deployed",
"externalId": "wac-health-check-processor.repository-default.wopi-templates-space.wac-health-check-processor",
"globalId": "wire://WopiTemplatesSpace/wacHealthCheckProcessor/repository/default",
"id": "wire://WopiTemplatesSpace/wacHealthCheckProcessor/repository/default",
"module": {"_type": "com.braintribe.model.deployment.Module", "_id": "70",
"bindsDeployables": true,
"bindsHardwired": false,
"bindsInitializers": false,
"bindsWireContracts": false,
"globalId": "module://tribefire.extension.wopi:wopi-module",
"id": "module://tribefire.extension.wopi:wopi-module",
"name": "wopi-module",
"partition": "cortex"
},
"name": "WOPI WAC Health Check - Repository/default",
"partition": "cortex",
"wopiWacConnector": {"_type": "com.braintribe.model.wopi.connector.WopiWacConnector", "_id": "71",
"autoDeploy": true,
"connectTimeoutInMs": 2000,
"connectionRequestTimeoutInMs": 2000,
"connectionRetries": 3,
"delayOnRetryInMs": 1000,
"deploymentStatus": "deployed",
"externalId": "wopi-wac-connector.repository-default.wopi-templates-space.wopi-wac-connector",
"globalId": "wire://WopiTemplatesSpace/wopiWacConnector/repository/default",
"id": "wire://WopiTemplatesSpace/wopiWacConnector/repository/default",
"module": {"_ref": "70"},
"name": "WOPI WAC Connector - Repository/default",
"partition": "cortex",
"socketTimeoutInMs": 2000,
"wacDiscoveryEndpoint": "http://wopi.agile-documents.com/hosting/discovery"
}
},
"coverage": "connectivity",
"isPlatformRelevant": false,
"module": {"_ref": "70"},
"name": "WOPI Checks",
"node": "adx@DESKTOP-J07TD08#200720151955598c4700f3a48d468c9f",
"result": {"_type": "com.braintribe.model.check.service.CheckResult", "_id": "72",
"elapsedTimeInMs": 1225.1377,
"entries": [
{"_type": "com.braintribe.model.check.service.CheckResultEntry", "_id": "73",
"checkStatus": "ok",
"details": "Checks connectivity to 'http://wopi.agile-documents.com/hosting/discovery' endpoint",
"detailsAsMarkdown": false,
"name": "WacHealthCheckProcessor"
}
]
},
"status": "ok",
"weight": "under1s"
}
],
"status": "ok"
Additional endpoints for monitoring D1 status
D1 offers several options to gain internal information about functioning D1.
These calls are resource-intensive and should not be executed periodically too frequently (e.g., every second would create too much load on the system, but maybe once every 1-10 min should be fine).
Every call to the following REST URLs requires a valid session ID that can be obtained prior to that using the /authenticate
endpoint.
curl -X POST "https://[host]:[port]/services/api/v1/authenticate" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "user=[username]" -F "password=[password]"
If you need information from a single node in a cluster, the following REST calls (depicted as cURL commands) can be used:
For D1 versions prior to 2.5:
curl -H "Cookie: tfsessionId=[sessionId]" -X POST 'https://[host]:[port]/services/api/v1/serviceDomain%3Aplatform/com.braintribe.model.platformreflection.request.ReflectPlatform'
For D1 version 2.6:
curl -H "Cookie: tfsessionId=[sessionId]" -X GET "https://[host]:[port]/services/api/v1/monitoring/platform-reflect" -H "accept: application/json"
There is also a way to ask any node in the cluster (e.g., via the load balancer) to get the same information for all nodes in the cluster in a single JSON combined.
For D1 2.6 and later versions:
curl -H "Cookie: tfsessionId=[sessionId]" -X GET https://[host]:[port]/services/about?type=json
Response interpretation
The services mentioned above return information about the internal status of D1 in a JSON structure. This JSON structure is big and it might help to understand it's structure by taking a look at the About page, where the same information is presented in a user-friendlier HTML page.
To monitor D1 status on the D1 About page, log in to D1, and then click About under Runtime.
In the figure below, the About page shows information about the CPU, memory, and hardware. You can click the links on the left side to show information about the system or threads. You can also use these links to download the Diagnostics package.
Here are a few guidelines:
For each node in the JSON structure, three main sub-sections are provided:
- System (operational information - e.g., information about the hardware and operating system D1 is running on, disks, file systems, network, database connections, memory usage, thread pools, etc)
- Host (information about the application server that D1/TF is running on; e.g., active connections, connection pools, thread pools, etc.)
- Tribefire (mostly static information about the D1/TF installation; e.g., version numbers, runtime properties, etc)
Each of the entries in the following JSON can be used to monitor the liveliness of the system. Here are some examples:
Hardware / OS / System
CPU Load: <node>.system.cpu.cpuLoad.totalCpu
Available Memory: <node>.system.memory.available
Available disk space: <node>.system.fileSystems [*] .freeSpaceInBytes
Active DB connections: <node>.system.databaseInformation.combinedConnectionInfo [*] .metrics.activeConnections
Thread count: <node>.system.javaEnvironment.threadCount
Virtual Memory size: <node>.system.javaEnvironment.virtualSize
RSS (Resident Set Size): <node>.system.javaEnvironment.residentSetSize
Active threads in Threadpools: <node>.system.threadPools.threadPools [*] .activeThreads
Average pending time in thread pools: <node>.system.threadPools.threadPools [*] .averagePendingTimeInMs
Example
"cpu": {"_type": "com.braintribe.model.platformreflection.check.cpu.Cpu", "_id": "15",
"cpu64bit": true,
"cpuLoad": {"_type": "com.braintribe.model.platformreflection.check.cpu.CpuLoad", "_id": "16",
"contextSwitches": 673244914363,
"globalId": null,
"id": null,
"idle": 65.9,
"interrupts": 36371309142,
"ioWait": 0.0,
"irq": 0.0,
"nice": 0.13,
"partition": null,
"softIrq": 0.26,
"steal": 0.0,
"sys": 3.45,
"systemCpuLoad": null,
"systemLoadAverage15Minutes": 2.35,
"systemLoadAverage1Minute": 3.28,
"systemLoadAverage5Minutes": 3.01,
"systemLoadPerProcessor": [
20.83,
19.59,
29.29,
17.35,
50.0,
100.0,
25.0,
8.33
],
"totalCpu": 34.1,
"user": 30.27
},
"cpuTemperature": 0.0,
"cpuVoltage": 0.0,
"currentFrequencies": [
"2.2 GHz",
"2.2 GHz",
"2.2 GHz",
"2.2 GHz",
"2.2 GHz",
"2.2 GHz",
"2.2 GHz"
],
"family": "6",
"fanSpeeds": null,
"globalId": null,
"id": null,
"identifier": "Intel64 Family 6 Model 79 Stepping 0",
"logicalProcessorCount": 8,
"maxFreq": 2200000000,
"maxFreqInGh": 2.2,
"model": "79",
"name": "Intel(R) Xeon(R) CPU @ 2.20GHz",
"partition": null,
"physicalProcessorCount": 4,
"processorId": "0F81FBFF004006F0",
"systemBootTime": "2020-07-29T22:58:20.044+0000",
"systemSerialNumber": "unknown",
"vendor": "GenuineIntel",
"vendorFreq": 2200000000,
"vendorFreqInGh": 2.2
},
"databaseInformation": {"_type": "com.braintribe.model.platformreflection.db.DatabaseInformation", "_id": "17",
"combinedConnectionInfo": [
{"_type": "com.braintribe.model.platformreflection.db.DatabaseConnectionPool", "_id": "18",
"connectionDescription": "connection.adx.content.gerry, connection.adx.cache.cmis-momcilo, connection.adx.content.mydemorepo, connection.adx.cache.gcs-marko, connection.adx.content.rku-playground-gcp, connection.adx.cache.case-management, connection.adx.cache.swissre-claims, connection.adx.cache.rverepo, connection.adx.content.gkpoliciesdemo, connection.adx.content.removeme3, connection.adx.cache.nor-test, connection.adx.content.migration, connection.adx.cache.spr-test-repo, connection.adx.content.gk, connection.adx.cache.gsc-db, connection.adx.cache.radotestrepo, connection.adx.cache.rku-playground-gcp, connection.adx.cache.renditiontest, connection.adx.content.spr-test-repo, connection.adx.content.swissre-claims, connection.adx.content.radotestrepo, connection.adx.cache.dctm, connection.adx.cache.nikolacmis, connection.adx.cache.migration, connection.adx.cache.media-test, connection.adx.content.rku-playground, connection.adx.cache.default, connection.adx.content.case-management, connection.adx.cache.gkpoliciesdemo, connection.adx.content.default, connection.adx.content.gcs-marko, connection.adx.content.media-test, connection.adx.content.rverepo, connection.adx.content.nor-test, connection.adx.cache.s3-marko, connection.adx.cache.mydemorepo, storage.db.connection, connection.adx.cache.cmis, connection.adx.cache.gerry, connection.adx.content.gsc-db, connection.adx.content.gktrace, connection.adx.cache.gktrace, connection.adx.cache.removeme3, connection.adx.content.s3-marko, connection.adx.cache.rku-playground, connection.adx.cache.gk",
"connectionTimeout": null,
"globalId": null,
"id": null,
"idleTimeout": null,
"maxLifetime": null,
"maximumPoolSize": 950,
"metrics": {"_type": "com.braintribe.model.platformreflection.db.DatabaseConnectionPoolMetrics", "_id": "19",
"activeConnections": 0,
"globalId": null,
"id": null,
"idleConnections": 2,
"leaseCount": 7907,
"partition": null,
"threadsAwaitingConnections": 0,
"totalConnections": 2,
"usageMaxTime": null,
"usageMeanTime": null,
"usageMedianTime": null,
"usageMinTime": null,
"waitTimeFifteenMinutesRate": null,
"waitTimeFiveMinutesRate": null,
"waitTimeMeanRate": null,
"waitTimeOneMinuteRate": null
},
"minimumPoolSize": 2,
"name": "35.198.165.135:5432",
"partition": null
}
Host
Connection count: <node>.host.threadPools.threadPools [*] .connectionCount
Busy threads: <node>.host.threadPools.threadPools [*] .currentThreadsBusy
Example
[
{ "master@phoenix-dev-tribefire-master-f49d8c48c-cbbrd--RND-eXMF0dh4G3" :
{"_type": "com.braintribe.model.platformreflection.PlatformReflection", "_id": "0",
"globalId": null,
"host": {"_type": "com.braintribe.model.platformreflection.host.tomcat.TomcatHostInfo", "_id": "1",
"connectors": [
{"_type": "com.braintribe.model.platformreflection.host.tomcat.Connector", "_id": "2",
"acceptCount": 100,
"bytesReceived": 0,
"bytesSent": 0,
"connectionLinger": -1,
"connectionTimeout": 120000,
"errorCount": 0,
"globalId": null,
"id": null,
"keepAliveTimeout": 120000,
"localPort": 8443,
"maxHeaderCount": 100,
"maxParameterCount": 10000,
"maxPostSize": 2097152,
"maxSavePostSize": 4096,
"maxSwallowSize": 2097152,
"maxThreads": 5000,
"maxTime": 0,
"minSpareThreads": 10,
"packetSize": null,
"partition": null,
"port": 8443,
"processingTime": 0,
"processorCache": 200,
"protocol": "HTTP/1.1",
"proxyName": null,
"proxyPort": 0,
"redirectPort": 443,
"requestCount": 0,
"scheme": "https",
"secure": true,
"sslProtocols": null,
"stateName": "Started",
"tcpNoDelay": false,
"threadPriority": 5,
"uriEncoding": "UTF-8"
},
{"_type": "com.braintribe.model.platformreflection.host.tomcat.Connector", "_id": "3",
"acceptCount": 100,
"bytesReceived": 204909,
"bytesSent": 16363779,
"connectionLinger": -1,
"connectionTimeout": 120000,
"errorCount": 64,
"globalId": null,
"id": null,
"keepAliveTimeout": 120000,
"localPort": 8080,
"maxHeaderCount": 100,
"maxParameterCount": 10000,
"maxPostSize": 2097152,
"maxSavePostSize": 4096,
"maxSwallowSize": 2097152,
"maxThreads": 5000,
"maxTime": 8903,
"minSpareThreads": 10,
"packetSize": null,
"partition": null,
"port": 8080,
"processingTime": 78665,
"processorCache": 200,
"protocol": "HTTP/1.1",
"proxyName": null,
"proxyPort": 0,
"redirectPort": 443,
"requestCount": 4997,
"scheme": "http",
"secure": false,
"sslProtocols": null,
"stateName": "Started",
"tcpNoDelay": false,
"threadPriority": 5,
"uriEncoding": "UTF-8"
}
],
"engine": {"_type": "com.braintribe.model.platformreflection.host.tomcat.Engine", "_id": "4",
"baseDir": null,
"defaultHost": "localhost",
"globalId": null,
"id": null,
"name": "Catalina",
"partition": null,
"startStopThreads": 1,
"stateName": "Started"
},
"globalId": null,
"hostBasePath": "/opt/tribefire/runtime/host",
"hostHomePath": "/opt/tribefire/runtime/host",
"hostType": "Apache Tomcat",
"hostVersion": "9.0.43",
"id": null,
"partition": null,
"ssl": [
{"_type": "com.braintribe.model.platformreflection.host.tomcat.Ssl", "_id": "5",
"ciphers": [
"HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!kRSA"
],
"globalId": null,
"id": null,
"keyAlias": null,
"keyStoreFile": "/opt/tribefire/runtime/host/conf/keystore.p12",
"keyStoreProvider": null,
"keyStoreType": "PKCS12",
"partition": null,
"port": 8443,
"protocol": "TLS",
"trustStoreFile": null,
"trustStoreProvider": null,
"trustStoreType": "JKS"
}
],
"threadPools": {"_type": "com.braintribe.model.platformreflection.host.tomcat.ThreadPools", "_id": "6",
"busyThreadCount": 1,
"globalId": null,
"id": null,
"partition": null,
"threadPools": [
{"_type": "com.braintribe.model.platformreflection.host.tomcat.ThreadPool", "_id": "7",
"connectionCount": 1,
"currentThreadCount": 10,
"currentThreadsBusy": 0,
"globalId": null,
"id": null,
"maxThreadCount": 5000,
"name": "https-jsse-nio-8443",
"partition": null
},
{"_type": "com.braintribe.model.platformreflection.host.tomcat.ThreadPool", "_id": "8",
"connectionCount": 10,
"currentThreadCount": 23,
"currentThreadsBusy": 1,
"globalId": null,
"id": null,
"maxThreadCount": 5000,
"name": "http-nio-8080",
"partition": null
}
],
"totalConnectionCount": 11,
"totalThreadCount": 33
},
"webapps": [
{"_type": "com.braintribe.model.platformreflection.host.Webapp", "_id": "9",
"globalId": null,
"host": "localhost",
"id": null,
"name": "/",
"partition": null,
"stateName": "Started"
}
]
}
]
There might be changes to this structure in future versions.