|
4 | 4 | "metadata": {
|
5 | 5 | "_generator": {
|
6 | 6 | "name": "bicep",
|
7 |
| - "version": "0.8.9.13224", |
8 |
| - "templateHash": "15764512542973096333" |
| 7 | + "version": "0.11.1.770", |
| 8 | + "templateHash": "7735540225521918061" |
9 | 9 | }
|
10 | 10 | },
|
11 | 11 | "parameters": {
|
|
38 | 38 | },
|
39 | 39 | "variables": {
|
40 | 40 | "dashboardName": "[guid(parameters('connectedClusterName'), parameters('connectedClusterResourceGroup'))]",
|
41 |
| - "devicesquery": "let Time = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | summarize by Time=TimeGenerated;\r\nlet RegisteredDevices = InsightsMetrics\r\n | where Namespace == \"prometheus\" \r\n | where Name == \"amf_registered_subscribers\"\r\n | summarize by RegisteredDevices=Val, Time=TimeGenerated;\r\nlet ProvisionedDevices = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"subscribers_count\"\r\n | where Tags has '\"type\":\"provisioned\"'\r\n | summarize by ProvisionedDevices=Val, Time=TimeGenerated;\r\nlet ConnectedDevices = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amf_registered_subscribers_connected\"\r\n | summarize by ConnectedDevices=Val, Time=TimeGenerated;\r\nTime\r\n | join kind=leftouter (RegisteredDevices) on Time\r\n | join kind=leftouter (ProvisionedDevices) on Time\r\n | join kind=leftouter (ConnectedDevices) on Time\r\n | project Time, RegisteredDevices, ProvisionedDevices, ConnectedDevices\r\n | render areachart kind=unstacked \r\n", |
| 41 | + "devicesquery": "let Time = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | summarize by Time=TimeGenerated;\r\nlet RegisteredDevices = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amf_registered_subscribers\"\r\n | summarize by RegisteredDevices=Val, Time=TimeGenerated;\r\nlet ProvisionedDevices = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"subscribers_count\"\r\n | where Tags has '\"type\":\"provisioned\"'\r\n | summarize by ProvisionedDevices=Val, Time=TimeGenerated;\r\nlet ConnectedDevices = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amf_registered_subscribers_connected\"\r\n | summarize by ConnectedDevices=Val, Time=TimeGenerated;\r\nTime\r\n | join kind=leftouter (RegisteredDevices) on Time\r\n | join kind=leftouter (ProvisionedDevices) on Time\r\n | join kind=leftouter (ConnectedDevices) on Time\r\n | project Time, RegisteredDevices, ProvisionedDevices, ConnectedDevices\r\n | render areachart kind=unstacked\r\n", |
42 | 42 | "gnodequery": "InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amf_connected_gnb\"\r\n | extend Time=TimeGenerated\r\n | extend GnBs=Val\r\n | project GnBs, Time\r\n | render timechart\r\n",
|
43 |
| - "pdusessionsquery": "InsightsMetrics\r\n | where Namespace == \"prometheus\" \r\n | where Name == \"subgraph_counts\"\r\n | summarize PduSessions=max(Val) by Time=TimeGenerated\r\n | render areachart kind=unstacked\r\n", |
44 |
| - "userthroughputquery": "let rate_function=(tbl: (Val: real, Time: datetime)) {\r\n tbl\r\n | sort by Time asc\r\n | extend correction = iff(Val < prev(Val), prev(Val), 0.0) // if the value decreases we assume it was reset to 0, so add last value\r\n | extend cum_correction = row_cumsum(correction)\r\n | extend Val = Val + cum_correction\r\n | extend PrevTime = prev(Time), PrevVal = prev(Val)\r\n | extend dt = (Time - PrevTime) / 1s\r\n | extend dv = Val - PrevVal\r\n | extend rate = (dv * 8) / (dt * 1000000) // convert to Megabits per second\r\n}\r\n;\r\nlet BytesUpstream = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"cppe_bytes_total\"\r\n | where Tags has '\"direction\":\"tx\"'\r\n | where Tags has '\"interface\":\"n6\"'\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | project BytesUpstream=rate, Time;\r\nlet BytesDownstream = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"cppe_bytes_total\"\r\n | where Tags has '\"direction\":\"tx\"'\r\n | where Tags has '\"interface\":\"n3\"'\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | project BytesDownstream=rate, Time;\r\nBytesUpstream\r\n| join kind=leftouter (BytesDownstream) on Time\r\n| project Time, BytesUpstream, BytesDownstream\r\n| render areachart kind=stacked title=\"Userplane Throughput (Mb/s)\"\r\n", |
45 |
| - "errorsquery": "let rate_function=(tbl:(Val: real, Time: datetime))\r\n{\r\ntbl\r\n | sort by Time asc\r\n | extend correction = iff(Val < prev(Val), prev(Val), 0.0) // if the value decreases we assume it was reset to 0, so add last value\r\n | extend cum_correction = row_cumsum(correction)\r\n | extend Val = Val + cum_correction\r\n | extend PrevTime = prev(Time), PrevVal = prev(Val)\r\n | extend dt = (Time-PrevTime)/1s\r\n | extend dv = Val-PrevVal\r\n | extend rate = dv/dt\r\n};\r\nlet TimeSeries = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | summarize by Time=TimeGenerated;\r\nlet session_setup_response = InsightsMetrics\r\n | where Namespace == \"prometheus\" \r\n | where Name == \"amfn2_n2_pdu_session_resource_setup_response\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend SetupResponse=rate;\r\nlet session_setup_request = InsightsMetrics\r\n | where Namespace == \"prometheus\" \r\n | where Name == \"amfn2_n2_pdu_session_resource_setup_request\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend SetupRequest=rate;\r\nlet session_modify_response = InsightsMetrics\r\n | where Namespace == \"prometheus\" \r\n | where Name == \"amfn2_n2_pdu_session_resource_modify_response\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend ModifyResponse=rate;\r\nlet session_modify_request = InsightsMetrics\r\n | where Namespace == \"prometheus\" \r\n | where Name == \"amfn2_n2_pdu_session_resource_modify_request\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend ModifyRequest=rate;\r\nlet session_release_command = InsightsMetrics\r\n | where Namespace == \"prometheus\" \r\n | where Name == \"amfn2_n2_pdu_session_resource_release_command\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend ReleaseCommand=rate;\r\nlet session_release_response = InsightsMetrics\r\n | where Namespace == \"prometheus\" \r\n | where Name == \"amfn2_n2_pdu_session_resource_release_response\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend ReleaseResponse=rate;\r\nlet registration = InsightsMetrics\r\n | where Namespace == \"prometheus\" \r\n | where Name == \"amfcc_mm_initial_registration_failure\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend Registration=rate;\r\nlet authentication_failure = InsightsMetrics\r\n | where Namespace == \"prometheus\" \r\n | where Name == \"amfcc_n1_auth_failure\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend AuthenticationFailure=rate;\r\nlet authentication_rejection = InsightsMetrics\r\n | where Namespace == \"prometheus\" \r\n | where Name == \"amfcc_n1_auth_reject\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend AuthenticationRejection=rate;\r\nlet service_rejection = InsightsMetrics\r\n | where Namespace == \"prometheus\" \r\n | where Name == \"amfcc_n1_service_reject\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend Service=rate;\r\nlet request_failure = InsightsMetrics\r\n | where Namespace == \"prometheus\" \r\n | where Name == \"amfn2_n2_pathswitch_request_failure\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend PathSwitch=rate;\r\nlet handover_failure = InsightsMetrics\r\n | where Namespace == \"prometheus\" \r\n | where Name == \"amfn2_n2_handover_failure\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend Handover=rate;\r\nTimeSeries\r\n | join kind=leftouter (registration) on Time\r\n | join kind=leftouter (session_setup_request) on Time\r\n | join kind=leftouter (session_setup_response) on Time\r\n | join kind=leftouter (session_modify_request) on Time\r\n | join kind=leftouter (session_modify_response) on Time\r\n | join kind=leftouter (session_release_command) on Time\r\n | join kind=leftouter (session_release_response) on Time\r\n | join kind=leftouter (authentication_failure) on Time\r\n | join kind=leftouter (authentication_rejection) on Time\r\n | join kind=leftouter (service_rejection) on Time\r\n | join kind=leftouter (request_failure) on Time\r\n | join kind=leftouter (handover_failure) on Time\r\n | project Time, Registration, AuthenticationFailure, AuthenticationRejection, SessionEstablishment=SetupResponse-SetupRequest, SessionModification=ModifyResponse-ModifyRequest, SessionRelease=ReleaseCommand-ReleaseResponse, Service, PathSwitch, Handover\r\n | render areachart kind=unstacked\r\n" |
| 43 | + "pdusessionsquery": "InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"subgraph_counts\"\r\n | summarize PduSessions=max(Val) by Time=TimeGenerated\r\n | render areachart kind=unstacked\r\n", |
| 44 | + "userthroughputquery": "let rate_function=(tbl: (Val: real, Time: datetime)) {\r\n tbl\r\n | sort by Time asc\r\n | extend correction = iff(Val < prev(Val), prev(Val), 0.0) // if the value decreases we assume it was reset to 0, so add last value\r\n | extend cum_correction = row_cumsum(correction)\r\n | extend Val = Val + cum_correction\r\n | extend PrevTime = prev(Time), PrevVal = prev(Val)\r\n | extend dt = (Time - PrevTime) / 1s\r\n | extend dv = Val - PrevVal\r\n | extend rate = (dv * 8) / (dt * 1000000) // convert to Megabits per second\r\n}\r\n;\r\nlet BytesUpstream = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"cppe_bytes_total\"\r\n | extend Tags = todynamic(Tags)\r\n | where Tags.direction == \"tx\"\r\n | where Tags.interface startswith \"n6\"\r\n | where not (Tags.interface has \"kernel\")\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | project BytesUpstream=rate, Time;\r\nlet BytesDownstream = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"cppe_bytes_total\"\r\n | extend Tags = todynamic(Tags)\r\n | where Tags.direction == \"tx\"\r\n | where Tags.interface == \"n3\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | project BytesDownstream=rate, Time;\r\nBytesUpstream\r\n| join kind=leftouter (BytesDownstream) on Time\r\n| project Time, BytesUpstream, BytesDownstream\r\n| render areachart kind=stacked title=\"Userplane Throughput (Mb/s)\"\r\n", |
| 45 | + "errorsquery": "let rate_function=(tbl:(Val: real, Time: datetime))\r\n{\r\ntbl\r\n | sort by Time asc\r\n | extend correction = iff(Val < prev(Val), prev(Val), 0.0) // if the value decreases we assume it was reset to 0, so add last value\r\n | extend cum_correction = row_cumsum(correction)\r\n | extend Val = Val + cum_correction\r\n | extend PrevTime = prev(Time), PrevVal = prev(Val)\r\n | extend dt = (Time-PrevTime)/1s\r\n | extend dv = Val-PrevVal\r\n | extend rate = dv/dt\r\n};\r\nlet TimeSeries = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | summarize by Time=TimeGenerated;\r\nlet session_setup_response = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amfn2_n2_pdu_session_resource_setup_response\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend SetupResponse=rate;\r\nlet session_setup_request = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amfn2_n2_pdu_session_resource_setup_request\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend SetupRequest=rate;\r\nlet session_modify_response = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amfn2_n2_pdu_session_resource_modify_response\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend ModifyResponse=rate;\r\nlet session_modify_request = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amfn2_n2_pdu_session_resource_modify_request\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend ModifyRequest=rate;\r\nlet session_release_command = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amfn2_n2_pdu_session_resource_release_command\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend ReleaseCommand=rate;\r\nlet session_release_response = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amfn2_n2_pdu_session_resource_release_response\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend ReleaseResponse=rate;\r\nlet registration = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amfcc_mm_initial_registration_failure\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend Registration=rate;\r\nlet authentication_failure = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amfcc_n1_auth_failure\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend AuthenticationFailure=rate;\r\nlet authentication_rejection = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amfcc_n1_auth_reject\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend AuthenticationRejection=rate;\r\nlet service_rejection = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amfcc_n1_service_reject\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend Service=rate;\r\nlet request_failure = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amfn2_n2_pathswitch_request_failure\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend PathSwitch=rate;\r\nlet handover_failure = InsightsMetrics\r\n | where Namespace == \"prometheus\"\r\n | where Name == \"amfn2_n2_handover_failure\"\r\n | summarize Val=sum(Val) by Time=TimeGenerated\r\n | invoke rate_function()\r\n | extend Handover=rate;\r\nTimeSeries\r\n | join kind=leftouter (registration) on Time\r\n | join kind=leftouter (session_setup_request) on Time\r\n | join kind=leftouter (session_setup_response) on Time\r\n | join kind=leftouter (session_modify_request) on Time\r\n | join kind=leftouter (session_modify_response) on Time\r\n | join kind=leftouter (session_release_command) on Time\r\n | join kind=leftouter (session_release_response) on Time\r\n | join kind=leftouter (authentication_failure) on Time\r\n | join kind=leftouter (authentication_rejection) on Time\r\n | join kind=leftouter (service_rejection) on Time\r\n | join kind=leftouter (request_failure) on Time\r\n | join kind=leftouter (handover_failure) on Time\r\n | project Time, Registration, AuthenticationFailure, AuthenticationRejection, SessionEstablishment=SetupResponse-SetupRequest, SessionModification=ModifyResponse-ModifyRequest, SessionRelease=ReleaseCommand-ReleaseResponse, Service, PathSwitch, Handover\r\n | render areachart kind=unstacked\r\n" |
46 | 46 | },
|
47 | 47 | "resources": [
|
48 | 48 | {
|
|
0 commit comments