Grafana Dashboard

Job ID: 33862435

Budget: $30 – $250 USD

This project is to create a time series Grafana dashboard with different data sources from webhooks and APIs from large cloud Unified Communications provider. The Grafana cloud environment is already established with (2) plug-ins include Flowhook to receive data from webhooks and Websocket API to connect to APIs delivered by cloud UC infrastructure. I have all API and webhook reference documentation and I have URLs, permissions and the API keys, etc. to configure the API/webhook connections.

The scope will include creating the data sources and using something like JSONPath (https://github.com/json-path/JsonPath) to express conditions. There are 15 different events in the Webhooks with several variables. Some examples from the JSON output include:
{
"event": "phone.call_qos",
"payload": {
"account_id": "abc123",
"object": {
"call_id": "123456",
"call_start_time": "2022-06-07T13:30:57Z",
"call_end_time": "2022-06-07T13:31:16Z",
"call_qos": {
"id": "123456",
"type": "caller",
"qos": {
"type": "sending",
"details": {
"bitrate": "32.6285",
"jitter": "2.0",
"mos": "4.4",
"avg_loss": "0.0",
"max_loss": "0.0",
"network_delay": "51"
},
"date_time": "2022-06-07T13:31:16Z"
}



{
"event": "meeting.participant_data",
"payload": {
"account_id": "abc123",
"object": {
"uuid": "abc123",
"participant": {
"data": [
{
"as_internal_ip_address": "10.1.1.102",
"as_internal_ip_port": "60246"
}
],
"participant_id": "123456"



{
"event": "meeting.participant_data",
"payload": {
"account_id": "abc123",
"object": {
"uuid": "abc123",
"participant": {
"data": [
{
"video_internal_ip_address": "10.1.1.102",
"video_internal_ip_port": "49642"
}
],
"participant_id": "123456"
}


{
"event": "meeting.participant_data_summary",
"payload": {
"account_id": "abc123",
"object": {
"uuid": "abc123",
"participant": {
"data": [
{
"pc_name": "PCNAME",
"audio_internal_ip_port": "",
"connection_type": "UDP",
"as_internal_ip_address": "",
"as_internal_ip_port": "",
"version": "4.6.4356",
"signaling_internal_ip_port": "",
"mac_addr": "ab:ab:ab:ab:ab",
"video_internal_ip_address": "",
"audio_internal_ip_address": "",
"speaker": "MacBook Pro Speakers (MacBook Pro Speakers)",
"domain": "Workgroup",
"signaling_internal_ip_address": "",
"microphone": "MacBook Pro Microphone (MacBook Pro Microphone)",
"camera": "FaceTime HD Camera (Built-in)",
"network_type": "Wifi",
"harddisk_id": "123456-ABCD-1111-A1B2-123456789",
"video_internal_ip_port": "",
"device": "Mac",
"Location": ""
}
],
"participant_id": "123456"


The dashboard will include metrics including average QoS, Average MOS Score, and provide alerts for a configurable threshold such as "MOS < 3.2" and "average network delay > 100". It will include total number of calls. Total number of meetings. The dashboard will need to be able to be changed within the time series to 1 hour, 1 day, 1 week. Once the dashboard is created, I should be able to take the Grafana configuration and build it again elsewhere. Attached is a sample from another template that the dashboard will look like.