diff --git a/README.md b/README.md index 4b7eaea0839c03d1631b68fd963741bfa635b24b..efc3e5a5f208b5725b83264e443904b20da252ad 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,9 @@ presented via OpenAPI compliant descriptions. MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behaviour -and capabilities of the Location (MEC013), Radio Network Information (MEC012), WLAN Information (MEC028), Edge Platform +and capabilities of the Location (MEC013), Radio Network Information (MEC012), Traffic Management APIs (MEC015), Device Application Interface (MEC016), +WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer +significant differential performance for edge based MEC applications. Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer significant differential performance for edge based MEC applications. diff --git a/config/.meepctl-repocfg.yaml b/config/.meepctl-repocfg.yaml index e4cd1f98f725254082fdf78658c130e6adae50d0..250319024d1ccce1206a93759485c81e8bdb3be4 100644 --- a/config/.meepctl-repocfg.yaml +++ b/config/.meepctl-repocfg.yaml @@ -9,9 +9,9 @@ repo: # permissions permissions: # user id - uid: 1001 + uid: 1000 # group id - gid: 1001 + gid: 1000 # user supplied resources user: @@ -166,7 +166,7 @@ repo: # Default monitoring dashboards dashboards: mec-sandbox: dashboards/mec-sandbox.json - platform-advantedge: dashboards/platform-advantedge-thanos.json + platform-advantedge: dashboards/platform-advantedge.json platform-k8s: dashboards/platform-k8s.json runtime-environment-node: dashboards/runtime-environment-node.json runtime-environment-k8s-cluster: dashboards/runtime-environment-k8s-cluster.json @@ -279,6 +279,8 @@ repo: - meep-metrics-engine # - meep-mg-manager # - meep-rnis + # - meep-dai + # - meep-tm # - meep-wais # - meep-ams - meep-sandbox-ctrl @@ -357,6 +359,8 @@ repo: meep-metrics-engine: charts/meep-metrics-engine meep-mg-manager: charts/meep-mg-manager meep-rnis: charts/meep-rnis + meep-dai: charts/meep-dai + meep-tm: charts/meep-tm meep-wais: charts/meep-wais meep-ams: charts/meep-ams meep-sandbox-ctrl: charts/meep-sandbox-ctrl @@ -371,6 +375,8 @@ repo: - meep-metrics-engine # - meep-mg-manager # - meep-rnis + # - meep-dai + # - meep-tm # - meep-wais # - meep-ams - meep-sandbox-ctrl @@ -764,6 +770,80 @@ repo: docker-data: # location of entry script 'entrypoint.sh': go-apps/meep-wais/entrypoint.sh + meep-tm: + # location of source code + src: go-apps/meep-tm + # location of binary + bin: bin/meep-tm + # location of deployment chart + chart: charts/meep-tm + # user supplied value file located @ .meep/user/values (use below file name) + chart-user-values: meep-tm.yaml + # extra build flags + build-flags: + - -mod=vendor + # enable meepctl build + build: true + # enable meepctl dockerize + dockerize: true + # enable meepctl deploy/delete + deploy: true + # supports code coverage measurement when built in codecov mode + codecov: true + # supports linting + lint: true + # location of API specifications + api: + - name: 'AdvantEDGE MEC Bandwidth Management REST API' + file: go-apps/meep-tm/api/bwm/swagger.yaml + - name: 'AdvantEDGE MEC Multi-access Traffic Steering REST API' + file: go-apps/meep-tm/api/mts/swagger.yaml + # location of user supplied API specifications + user-api: + # resources available to docker container image + - name: 'Bandwidth Management REST API' + file: config/api/bwm-api.yaml + - name: 'Multi-access Traffic Steering REST API' + file: config/api/mts-api.yaml + docker-data: + # location of entry script + 'entrypoint.sh': go-apps/meep-tm/entrypoint.sh + meep-dai: + # location of source code + src: go-apps/meep-dai + # location of binary + bin: bin/meep-dai + # location of deployment chart + chart: charts/meep-dai + # user supplied value file located @ .meep/user/values (use below file name) + chart-user-values: meep-dai.yaml + # extra build flags + build-flags: + - -mod=vendor + # enable meepctl build + build: true + # enable meepctl dockerize + dockerize: true + # enable meepctl deploy/delete + deploy: true + # supports code coverage measurement when built in codecov mode + codecov: true + # supports onboarded device application instantiation + onboardedapp: true + # supports linting + lint: true + # location of API specifications + api: + - name: 'AdvantEDGE Device Application Interface REST API' + file: go-apps/meep-dai/api/swagger.yaml + # location of user supplied API specifications + user-api: + - name: 'Device Application Interface REST API' + file: config/api/dai-api.yaml + # resources available to docker container image + docker-data: + # location of entry script + 'entrypoint.sh': go-apps/meep-dai/entrypoint.sh meep-vis: # location of source code src: go-apps/meep-vis @@ -981,6 +1061,11 @@ repo: src: go-packages/meep-applications # supports linting lint: true + meep-bwm-client: + # location of source code + src: go-packages/meep-bwm-client + # supports linting + lint: false meep-couch: # location of source code src: go-packages/meep-couch @@ -1061,6 +1146,11 @@ repo: src: go-packages/meep-model # supports linting lint: true + meep-mts-client: + # location of source code + src: go-packages/meep-mts-client + # supports linting + lint: false meep-mq: # location of source code src: go-packages/meep-mq @@ -1126,6 +1216,11 @@ repo: src: go-packages/meep-users # supports linting lint: true + meep-dai-client: + # location of source code + src: go-packages/meep-dai-client + # supports linting + lint: false meep-wais-client: # location of source code src: go-packages/meep-wais-client diff --git a/config/api/bwm-api.yaml b/config/api/bwm-api.yaml new file mode 100644 index 0000000000000000000000000000000000000000..28a19429b2871afe6813d76a8eecbf790c561465 --- /dev/null +++ b/config/api/bwm-api.yaml @@ -0,0 +1,727 @@ +openapi: 3.0.0 +info: + contact: + url: 'https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api' + title: ETSI GS MEC 015 - Bandwidth Management API + version: 2.2.1 + description: >- + 'The ETSI MEC ISG MEC015 Bandwidth Management API described using OpenAPI +
**Note**
MEC Sandbox supports all BWM API endpoints; complete details on the BWM API can be found on [ETSI Forge](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/02.02.01_60/gs_mec015v020201p.pdf).'
+ license:
+ name: BSD-3-Clause
+ url: 'https://forge.etsi.org/legal-matters'
+externalDocs:
+ description: ETSI MEC015 V2.2.1 Traffic Management API
+ url: >-
+ https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/02.02.01_60/gs_mec015v020201p.pdf
+servers:
+ - url: 'https://localhost/sandboxname/bwm/v1'
+tags:
+- name: bwm
+paths:
+ /bw_allocations:
+ get:
+ tags:
+ - bwm
+ summary: Retrieve information about a list of bandwidthAllocation resources
+ description: Retrieves information about a list of bandwidthAllocation resources.
+ Typically used in 'Get configured bandwidth allocation from Bandwidth Management
+ Service' procedure as described in clause 6.2.5.
+ operationId: bandwidthAllocationListGET
+ parameters:
+ - name: app_instance_id
+ in: query
+ description: A MEC application instance may use multiple app_instance_ids
+ as an input parameter to query the bandwidth allocation of a list of MEC
+ application instances. app_instance_id corresponds to appInsId defined in
+ table 7.2.2-1. See note.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ type: string
+ - name: app_name
+ in: query
+ description: A MEC application instance may use multiple app_names as an input
+ parameter to query the bandwidth allocation of a list of MEC application
+ instances. app_name corresponds to appName defined in table 7.2.2-1. See
+ note.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ type: string
+ - name: session_id
+ in: query
+ description: A MEC application instance may use session_id as an input parameter
+ to query the bandwidth allocation of a list of sessions. session_id corresponds
+ to allocationId defined in table 7.2.2-1. See note.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ type: string
+ responses:
+ "200":
+ description: Upon success, a response body containing an array of the bandwidthAllocations
+ is returned.
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/BwInfo'
+ x-content-type: application/json
+ "400":
+ description: 'Bad Request : used to indicate that incorrect parameters were
+ passed to the request.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: 'Forbidden : operation is not allowed given the current status
+ of the resource.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: 'Not Found : used when a client provided a URI that cannot
+ be mapped to a valid resource URI.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ post:
+ tags:
+ - bwm
+ summary: Create a bandwidthAllocation resource
+ description: Used to create a bandwidthAllocation resource. Typically used in
+ 'Register to Bandwidth Management Service' procedure as described in clause
+ 6.2.1.
+ operationId: bandwidthAllocationPOST
+ parameters: []
+ requestBody:
+ description: Entity body in the request contains BwInfo to be created.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BwInfo'
+ required: true
+ responses:
+ "201":
+ description: Upon success, the HTTP response shall include a 'Location'
+ HTTP header that contains the resource URI of the created resource.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BwInfo'
+ "400":
+ description: 'Bad Request : used to indicate that incorrect parameters were
+ passed to the request.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: 'Forbidden : operation is not allowed given the current status
+ of the resource.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: 'Not Found : used when a client provided a URI that cannot
+ be mapped to a valid resource URI.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ /bw_allocations/{allocationId}:
+ get:
+ tags:
+ - bwm
+ summary: Retrieve information about a specific bandwidthAllocation
+ description: Retrieves information about a bandwidthAllocation resource. Typically
+ used in 'Get configured bandwidth allocation from Bandwidth Management Service'
+ procedure as described in clause 6.2.5.
+ operationId: bandwidthAllocationGET
+ parameters:
+ - name: allocationId
+ in: path
+ description: Represents a bandwidth allocation instance
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Used to indicate nonspecific success. The response body contains
+ a representation of the resource.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BwInfo'
+ "400":
+ description: 'Bad Request : used to indicate that incorrect parameters were
+ passed to the request.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: 'Forbidden : operation is not allowed given the current status
+ of the resource.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: 'Not Found : used when a client provided a URI that cannot
+ be mapped to a valid resource URI.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ put:
+ tags:
+ - bwm
+ summary: Update the information about a specific bandwidthAllocation
+ description: Updates the information about a bandwidthAllocation resource. As
+ specified in ETSI GS MEC 009 [6], the PUT HTTP method has 'replace' semantics.
+ operationId: bandwidthAllocationPUT
+ parameters:
+ - name: allocationId
+ in: path
+ description: Represents a bandwidth allocation instance
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ requestBody:
+ description: BwInfo with updated information is included as entity body of
+ the request.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BwInfo'
+ required: true
+ responses:
+ "200":
+ description: Used to indicate nonspecific success. The response body contains
+ a representation of the resource.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BwInfo'
+ "400":
+ description: 'Bad Request : used to indicate that incorrect parameters were
+ passed to the request.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: 'Forbidden : operation is not allowed given the current status
+ of the resource.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: 'Not Found : used when a client provided a URI that cannot
+ be mapped to a valid resource URI.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "412":
+ description: 'Precondition failed : used when a condition has failed during
+ conditional requests, e.g. when using ETags to avoid write conflicts when
+ using PUT'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ delete:
+ tags:
+ - bwm
+ summary: Remove a specific bandwidthAllocation
+ description: Used in 'Unregister from Bandwidth Management Service' procedure
+ as described in clause 6.2.3.
+ operationId: bandwidthAllocationDELETE
+ parameters:
+ - name: allocationId
+ in: path
+ description: Represents a bandwidth allocation instance
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ responses:
+ "204":
+ description: Upon success, a response 204 No Content without any response
+ body is returned.
+ "403":
+ description: 'Forbidden : operation is not allowed given the current status
+ of the resource.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: 'Not Found : used when a client provided a URI that cannot
+ be mapped to a valid resource URI.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ patch:
+ tags:
+ - bwm
+ summary: Modify the information about a specific existing bandwidthAllocation
+ by sending updates on the data structure
+ description: Updates the information about a bandwidthAllocation resource. As
+ specified in ETSI GS MEC 009 [6], the PATCH HTTP method updates a resource
+ on top of the existing resource state by just including the changes ('deltas')
+ in the request body.
+ operationId: bandwidthAllocationPATCH
+ parameters:
+ - name: allocationId
+ in: path
+ description: Represents a bandwidth allocation instance
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ requestBody:
+ description: Description of the changes to instruct the server how to modify
+ the resource representation.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BwInfoDeltas'
+ required: true
+ responses:
+ "200":
+ description: Used to indicate nonspecific success. The response body contains
+ a representation of the resource.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BwInfo'
+ "400":
+ description: 'Bad Request : used to indicate that incorrect parameters were
+ passed to the request.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: 'Forbidden : operation is not allowed given the current status
+ of the resource.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: 'Not Found : used when a client provided a URI that cannot
+ be mapped to a valid resource URI.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "412":
+ description: 'Precondition failed : used when a condition has failed during
+ conditional requests, e.g. when using ETags to avoid write conflicts when
+ using PUT'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+components:
+ schemas:
+ BwInfo:
+ required:
+ - allocationDirection
+ - appInsId
+ - fixedAllocation
+ - requestType
+ type: object
+ properties:
+ allocationId:
+ type: string
+ description: Bandwidth allocation instance identifier
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ allocationDirection:
+ type: string
+ description: 'The direction of the requested BW allocation: 00 = Downlink
+ (towards the UE) 01 = Uplink (towards the application/session) 10 = Symmetrical'
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appInsId:
+ type: string
+ description: Application instance identifier
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appName:
+ type: string
+ description: Name of the application
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ fixedAllocation:
+ type: string
+ description: Size of requested fixed BW allocation in [bps]
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ fixedBWPriority:
+ type: string
+ description: Indicates the allocation priority when dealing with several
+ applications or sessions in parallel. Values are not defined in the present
+ document
+ enum:
+ - SEE_DESCRIPTION
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Enum
+ requestType:
+ type: integer
+ description: 'Numeric value (0 - 255) corresponding to specific type of
+ consumer as following: 0 = APPLICATION_SPECIFIC_BW_ALLOCATION 1 = SESSION_SPECIFIC_BW_ALLOCATION'
+ enum:
+ - 0
+ - 1
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Enum_inlined
+ sessionFilter:
+ minItems: 0
+ type: array
+ description: Session filtering criteria, applicable when requestType is
+ set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define
+ a single session only. In case multiple sessions match sessionFilter the
+ request shall be rejected
+ items:
+ $ref: '#/components/schemas/BwInfo_sessionFilter'
+ x-etsi-mec-cardinality: 0..N
+ x-etsi-mec-origin-type: Structure (inlined)
+ timeStamp:
+ $ref: '#/components/schemas/BwInfo_timeStamp'
+ example:
+ timeStamp:
+ seconds: 1
+ nanoSeconds: 6
+ allocationDirection: allocationDirection
+ fixedBWPriority: SEE_DESCRIPTION
+ requestType: 0
+ sessionFilter:
+ - protocol: protocol
+ sourcePort:
+ - sourcePort
+ - sourcePort
+ dstPort:
+ - dstPort
+ - dstPort
+ sourceIp: sourceIp
+ dstAddress: dstAddress
+ - protocol: protocol
+ sourcePort:
+ - sourcePort
+ - sourcePort
+ dstPort:
+ - dstPort
+ - dstPort
+ sourceIp: sourceIp
+ dstAddress: dstAddress
+ appName: appName
+ allocationId: allocationId
+ appInsId: appInsId
+ fixedAllocation: fixedAllocation
+ x-etsi-ref: 7.2.2
+ BwInfoDeltas:
+ required:
+ - appInsId
+ - requestType
+ type: object
+ properties:
+ allocationId:
+ type: string
+ description: Bandwidth allocation instance identifier
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ allocationDirection:
+ type: string
+ description: 'The direction of the requested BW allocation: 00 = Downlink
+ (towards the UE) 01 = Uplink (towards the application/session) 10 = Symmetrical'
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ appInsId:
+ type: string
+ description: Application instance identifier
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ fixedAllocation:
+ type: string
+ description: Size of requested fixed BW allocation in [bps]
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ fixedBWPriority:
+ type: string
+ description: Indicates the allocation priority when dealing with several
+ applications or sessions in parallel. Values are not defined in the present
+ document
+ enum:
+ - SEE DESCRIPTION
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Enum_inlined
+ requestType:
+ type: integer
+ description: 'Numeric value (0 - 255) corresponding to specific type of
+ consumer as following: 0 = APPLICATION_SPECIFIC_BW_ALLOCATION 1 = SESSION_SPECIFIC_BW_ALLOCATION'
+ enum:
+ - 0
+ - 1
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Enum_inlined
+ sessionFilter:
+ minItems: 0
+ type: array
+ description: Session filtering criteria, applicable when requestType is
+ set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define
+ a single session only. In case multiple sessions match sessionFilter the
+ request shall be rejected
+ items:
+ $ref: '#/components/schemas/BwInfoDeltas_sessionFilter'
+ x-etsi-mec-cardinality: 0..N
+ x-etsi-mec-origin-type: Structure (inlined)
+ x-etsi-ref: 7.2.3
+ ProblemDetails:
+ type: object
+ properties:
+ detail:
+ type: string
+ description: A human-readable explanation specific to this occurrence of
+ the problem
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ instance:
+ type: string
+ description: A URI reference that identifies the specific occurrence of
+ the problem
+ format: uri
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: URI
+ status:
+ type: integer
+ description: The HTTP status code for this occurrence of the problem
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Uint32
+ title:
+ type: string
+ description: A short, human-readable summary of the problem type
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ type:
+ type: string
+ description: A URI reference according to IETF RFC 3986 that identifies
+ the problem type
+ format: uri
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: URI
+ BwInfo_sessionFilter:
+ type: object
+ properties:
+ dstAddress:
+ type: string
+ description: Destination address identity of session (including range)
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ dstPort:
+ minItems: 0
+ type: array
+ description: Destination port identity of session
+ items:
+ type: string
+ x-etsi-mec-cardinality: 0..N
+ x-etsi-mec-origin-type: String
+ protocol:
+ type: string
+ description: Protocol number
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ sourceIp:
+ type: string
+ description: Source address identity of session (including range)
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ sourcePort:
+ minItems: 0
+ type: array
+ description: Source port identity of session
+ items:
+ type: string
+ x-etsi-mec-cardinality: 0..N
+ x-etsi-mec-origin-type: String
+ example:
+ protocol: protocol
+ sourcePort:
+ - sourcePort
+ - sourcePort
+ dstPort:
+ - dstPort
+ - dstPort
+ sourceIp: sourceIp
+ dstAddress: dstAddress
+ BwInfo_timeStamp:
+ required:
+ - nanoSeconds
+ - seconds
+ type: object
+ properties:
+ nanoSeconds:
+ type: integer
+ description: The nanoseconds part of the Time. Time is defined as Unix-time
+ since January 1, 1970, 00:00:00 UTC
+ format: uint32
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Uint32
+ seconds:
+ type: integer
+ description: The seconds part of the Time. Time is defined as Unixtime since
+ January 1, 1970, 00:00:00 UTC
+ format: uint32
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Uint32
+ description: Time stamp to indicate when the corresponding information elements
+ are sent
+ example:
+ seconds: 1
+ nanoSeconds: 6
+ BwInfoDeltas_sessionFilter:
+ type: object
+ properties:
+ dstAddress:
+ type: string
+ description: Destination address identity of session (including range)
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ dstPort:
+ minItems: 0
+ type: array
+ description: Destination port identity of session
+ items:
+ type: string
+ x-etsi-mec-cardinality: 0..N
+ x-etsi-mec-origin-type: String
+ protocol:
+ type: string
+ description: Protocol number
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ sourceIp:
+ type: string
+ description: Source address identity of session (including range)
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ sourcePort:
+ minItems: 0
+ type: array
+ description: 'Source port identity of session '
+ items:
+ type: string
+ x-etsi-mec-cardinality: 0..N
+ x-etsi-mec-origin-type: String
+ responses:
+ "204":
+ description: Upon success, a response 204 No Content without any response body
+ is returned.
+ "400":
+ description: 'Bad Request : used to indicate that incorrect parameters were
+ passed to the request.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: 'Forbidden : operation is not allowed given the current status
+ of the resource.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: 'Not Found : used when a client provided a URI that cannot be
+ mapped to a valid resource URI.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "412":
+ description: 'Precondition failed : used when a condition has failed during
+ conditional requests, e.g. when using ETags to avoid write conflicts when
+ using PUT'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ parameters:
+ Path.allocationId:
+ name: allocationId
+ in: path
+ description: Represents a bandwidth allocation instance
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ Query.app_instance_id:
+ name: app_instance_id
+ in: query
+ description: A MEC application instance may use multiple app_instance_ids as
+ an input parameter to query the bandwidth allocation of a list of MEC application
+ instances. app_instance_id corresponds to appInsId defined in table 7.2.2-1.
+ See note.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ type: string
+ Query.app_name:
+ name: app_name
+ in: query
+ description: A MEC application instance may use multiple app_names as an input
+ parameter to query the bandwidth allocation of a list of MEC application instances.
+ app_name corresponds to appName defined in table 7.2.2-1. See note.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ type: string
+ Query.session_id:
+ name: session_id
+ in: query
+ description: A MEC application instance may use session_id as an input parameter
+ to query the bandwidth allocation of a list of sessions. session_id corresponds
+ to allocationId defined in table 7.2.2-1. See note.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ type: string
diff --git a/config/api/dai-api.yaml b/config/api/dai-api.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..c7ca5ddec691958b8e6d326e7e62ce9f184bb27a
--- /dev/null
+++ b/config/api/dai-api.yaml
@@ -0,0 +1,1658 @@
+openapi: 3.0.0
+info:
+ title: ETSI GS MEC 016 Device application interface
+ description: The ETSI MEC ISG Device application interface API described using OpenAPI.
+ contact:
+ url: https://forge.etsi.org/rep/mec/gs016-dev-app-api
+ license:
+ name: BSD-3-Clause
+ url: https://forge.etsi.org/legal-matters
+ version: 2.2.1
+externalDocs:
+ description: ETSI GS MEC016 V2.2.1 Device application interface
+ url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/016/02.02.01_60/gs_MEC016v020201p.pdf
+servers:
+- url: https://localhost/sandboxname/dev_app/v1
+tags:
+- name: dev_app
+paths:
+ /app_list:
+ get:
+ tags:
+ - dev_app
+ summary: Get available application information.
+ description: Used to query information about the available MEC applications.
+ operationId: meAppListGET
+ parameters:
+ - name: appName
+ in: query
+ description: Name to identify the MEC application.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ maxLength: 32
+ type: string
+ - name: appProvider
+ in: query
+ description: Provider of the MEC application.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ maxLength: 32
+ type: string
+ - name: appSoftVersion
+ in: query
+ description: Software version of the MEC application.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ maxLength: 32
+ type: string
+ - name: vendorId
+ in: query
+ description: Vendor identifier
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ maxLength: 32
+ type: string
+ - name: serviceCont
+ in: query
+ description: "Required service continuity mode for this application. Permitted\
+ \ values: 0 = SERVICE_CONTINUITY_NOT_REQUIRED. 1 = SERVICE_CONTINUITY_REQUIRED."
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: integer
+ enum:
+ - 0
+ - 1
+ responses:
+ "200":
+ description: The response body contains an array of the user applications
+ available to the querying device application.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApplicationList'
+ "400":
+ description: "Bad Request : used to indicate that incorrect parameters were\
+ \ passed to the request."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "401":
+ description: "Unauthorized : used when the client did not submit credentials."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: "Forbidden : operation is not allowed given the current status\
+ \ of the resource."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: "Not Found : used when a client provided a URI that cannot\
+ \ be mapped to a valid resource URI."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ /app_contexts:
+ post:
+ tags:
+ - dev_app
+ summary: Creation of a new application context.
+ description: "Used to create a new application context. Upon success, the response\
+ \ contains entity body describing the created application context."
+ operationId: devAppContextsPOST
+ parameters: []
+ requestBody:
+ description: Entity body in the request contains the Application Context as
+ requested by the device application.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AppContext'
+ required: true
+ responses:
+ "201":
+ description: "The response body contains the Application Context as it was\
+ \ created by the MEC system, which includes the reference URI(s) of the\
+ \ associated user application instance(s). The URI of the resource created\
+ \ within the MEC system associated with the request, with its specific\
+ \ application context ID, shall be included in the 'Location' HTTP header\
+ \ of the response."
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AppContext'
+ "400":
+ description: "Bad Request : used to indicate that incorrect parameters were\
+ \ passed to the request."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "401":
+ description: "Unauthorized : used when the client did not submit credentials."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: "Forbidden : operation is not allowed given the current status\
+ \ of the resource."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: "Not Found : used when a client provided a URI that cannot\
+ \ be mapped to a valid resource URI."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ callbacks:
+ notification:
+ '{$request.body#/appContext.callbackReference}':
+ post:
+ summary: Callback POST used to send a notification
+ description: Notification with content based on subscription type
+ operationId: notificationPOST
+ requestBody:
+ description: Subscription notification
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InlineNotification'
+ example:
+ notificationType: ApplicationContextDeleteNotification
+ contextId: contextId123
+ required: true
+ responses:
+ "204":
+ description: "Upon success, a response 204 No Content without any\
+ \ response body is returned."
+ /app_contexts/{contextId}:
+ put:
+ tags:
+ - dev_app
+ summary: Updating the callbackReference and/or appLocation of an existing application
+ context.
+ description: "Used to update the callback reference and/or application location\
+ \ constraints of an existing application context. Upon successful operation,\
+ \ the target resource is updated with the new application context information."
+ operationId: devAppContextPUT
+ parameters:
+ - name: contextId
+ in: path
+ description: Uniquely identifies the application context in the MEC system.
+ It is assigned by the MEC system.
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ requestBody:
+ description: Only the callbackReference and/or appLocation attribute values
+ are allowed to be updated. Other attributes and their values shall remain
+ untouched.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AppContext'
+ required: true
+ responses:
+ "204":
+ description: "Upon success, a response 204 No Content without any response\
+ \ body is returned."
+ "400":
+ description: "Bad Request : used to indicate that incorrect parameters were\
+ \ passed to the request."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "401":
+ description: "Unauthorized : used when the client did not submit credentials."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: "Forbidden : operation is not allowed given the current status\
+ \ of the resource."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: "Not Found : used when a client provided a URI that cannot\
+ \ be mapped to a valid resource URI."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ delete:
+ tags:
+ - dev_app
+ summary: Deletion of an existing application context.
+ description: Used to delete the resource that represents the existing application
+ context.
+ operationId: devAppContextDELETE
+ parameters:
+ - name: contextId
+ in: path
+ description: Uniquely identifies the application context in the MEC system.
+ It is assigned by the MEC system.
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ responses:
+ "204":
+ description: "Upon success, a response 204 No Content without any response\
+ \ body is returned."
+ "400":
+ description: "Bad Request : used to indicate that incorrect parameters were\
+ \ passed to the request."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "401":
+ description: "Unauthorized : used when the client did not submit credentials."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: "Forbidden : operation is not allowed given the current status\
+ \ of the resource."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: "Not Found : used when a client provided a URI that cannot\
+ \ be mapped to a valid resource URI."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ /obtain_app_loc_availability:
+ post:
+ tags:
+ - dev_app
+ summary: Obtain the location constraints for a new application context.
+ description: Used to obtain the locations available for instantiation of a specific
+ user application in the MEC system.
+ operationId: appLocationAvailabilityPOST
+ parameters: []
+ requestBody:
+ description: Entity body in the request contains the user application information
+ for the MEC system to evaluate the locations available for instantiation
+ of that application.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApplicationLocationAvailability'
+ required: true
+ responses:
+ "200":
+ description: The response body contains the locations available for instantiation
+ of the requested user application in the MEC system.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApplicationLocationAvailability'
+ "400":
+ description: "Bad Request : used to indicate that incorrect parameters were\
+ \ passed to the request."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "401":
+ description: "Unauthorized : used when the client did not submit credentials."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: "Forbidden : operation is not allowed given the current status\
+ \ of the resource."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: "Not Found : used when a client provided a URI that cannot\
+ \ be mapped to a valid resource URI."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ /subscriptions/{subscriptionId}:
+ post:
+ tags:
+ - app_term
+ summary: MEC011 Application Termination notification for self termination
+ description: Terminates itself.
+ operationId: mec011AppTerminationPOST
+ parameters:
+ - name: subscriptionId
+ in: path
+ description: "Refers to created subscription, where the VIS API allocates\
+ \ a unique resource name for this subscription"
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ requestBody:
+ description: Termination notification details
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AppTerminationNotification'
+ example:
+ notificationType: AppTerminationNotification
+ operationAction: TERMINATING
+ maxGracefulTimeout: 10
+ _links:
+ subscription:
+ href: http://mec011Server.example.com/mec_app_support/v1/applications/appId1234/subscriptions/sub123
+ confirmTermination:
+ href: http://mec011Server.example.com/mec_app_support/v1/confirm_termination
+ required: true
+ responses:
+ "204":
+ description: No Content
+ x-swagger-router-controller: notifications
+ delete:
+ tags:
+ - unsupported
+ summary: Used to cancel the existing subscription.
+ description: Used to cancel the existing subscription.
+ operationId: individualSubscriptionDELETE
+ parameters:
+ - name: subscriptionId
+ in: path
+ description: "Refers to created subscription, where the VIS API allocates\
+ \ a unique resource name for this subscription"
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ responses:
+ "204":
+ description: No Content
+ "401":
+ description: "Unauthorized : used when the client did not submit credentials."
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: "Forbidden : operation is not allowed given the current status\
+ \ of the resource."
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: "Not Found : used when a client provided a URI that cannot\
+ \ be mapped to a valid resource URI."
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "429":
+ description: "Too Many Requests : used when a rate limiter has triggered."
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+components:
+ schemas:
+ AddressChangeNotification:
+ required:
+ - appInstanceId
+ - contextId
+ - notificationType
+ - referenceURI
+ type: object
+ properties:
+ appInstanceId:
+ type: string
+ description: Identifier of the user application instance.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ contextId:
+ type: string
+ description: Uniquely identifies the application context in the MEC system.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ notificationType:
+ type: string
+ description: Shall be set to "AddressChangeNotification".
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ referenceURI:
+ type: string
+ description: Address of the user application. Used as the reference URI
+ for the application. Assigned by the MEC system.
+ format: uri
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: URI
+ x-etsi-ref: 6.4.2
+ AppContext:
+ required:
+ - appInfo
+ - associateDevAppId
+ type: object
+ properties:
+ appAutoInstantiation:
+ type: boolean
+ description: Provides indication to the MEC system that instantiation of
+ the requested application is desired should a requested appLocation become
+ available that was not at the time of the request.
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Boolean
+ appInfo:
+ $ref: '#/components/schemas/AppContext_appInfo'
+ appLocationUpdates:
+ type: boolean
+ description: Used by the device application to request to receive notifications
+ at the callbackReference URI relating to location availability for user
+ application instantiation.
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Boolean
+ associateDevAppId:
+ maxLength: 32
+ type: string
+ description: Uniquely identifies the device application. The length of the
+ value shall not exceed 32 characters.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ callbackReference:
+ type: string
+ description: URI assigned by the device application to receive application
+ lifecycle related notifications. Inclusion in the request implies the
+ client supports the pub/sub mechanism and is capable of receiving notifications.
+ This endpoint shall be maintained for the lifetime of the application
+ context.
+ format: uri
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: URI
+ contextId:
+ maxLength: 32
+ type: string
+ description: Uniquely identifies the application context in the MEC system.
+ Assigned by the MEC system and shall be present other than in a create
+ request. The length of the value shall not exceed 32 characters.
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ example:
+ callbackReference: http://example.com/aeiou
+ appInfo:
+ appSoftVersion: appSoftVersion
+ appDVersion: appDVersion
+ appPackageSource: http://example.com/aeiou
+ appName: appName
+ appDescription: appDescription
+ userAppInstanceInfo:
+ - appInstanceId: appInstanceId
+ appLocation:
+ area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ referenceURI: http://example.com/aeiou
+ - appInstanceId: appInstanceId
+ appLocation:
+ area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ referenceURI: http://example.com/aeiou
+ appDId: appDId
+ appProvider: appProvider
+ associateDevAppId: associateDevAppId
+ contextId: contextId
+ appLocationUpdates: true
+ appAutoInstantiation: true
+ x-etsi-notes: "NOTE 1:\tIf a value of the attribute is included in the request,\
+ \ the same value shall be included in the response.\nNOTE 2:\tThe design of\
+ \ the current operation with callback reference assumes no web proxy between\
+ \ the entity that originates the notification and the entity that receives\
+ \ it.\nNOTE 3:\tThe language support for the application description may be\
+ \ limited.\nNOTE 4:\tAttribute appLocationUpdates and appAutoInstantiation\
+ \ shall not both be set to TRUE."
+ x-etsi-ref: 6.2.3
+ ApplicationContextDeleteNotification:
+ required:
+ - contextId
+ - notificationType
+ type: object
+ properties:
+ contextId:
+ type: string
+ description: Uniquely identifies the application context that has been deleted
+ from the MEC system.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ notificationType:
+ type: string
+ description: Shall be set to "ApplicationContextDeleteNotification".
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ x-etsi-ref: 6.4.3
+ ApplicationContextUpdateNotification:
+ required:
+ - contextId
+ - notificationType
+ - userAppInstanceInfo
+ type: object
+ properties:
+ contextId:
+ type: string
+ description: Uniquely identifies the application context in the MEC system.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ notificationType:
+ type: string
+ description: Shall be set to "ApplicationContextUpdateNotification".
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ userAppInstanceInfo:
+ minItems: 1
+ required:
+ - appInstanceId
+ - referenceURI
+ type: array
+ description: List of user application instance information.
+ items:
+ $ref: '#/components/schemas/ApplicationContextUpdateNotification_userAppInstanceInfo'
+ x-etsi-mec-cardinality: 1..N
+ x-etsi-mec-origin-type: array (Structure inlined)
+ x-etsi-ref: 6.4.4
+ ApplicationList:
+ type: object
+ properties:
+ appList:
+ minItems: 0
+ required:
+ - appInfo
+ type: array
+ description: List of user applications available to the device application.
+ As defined below.
+ items:
+ $ref: '#/components/schemas/ApplicationList_appList'
+ x-etsi-mec-cardinality: 0..N
+ x-etsi-mec-origin-type: Array (Structure (inlined))
+ example:
+ appList:
+ - appInfo:
+ appCharcs:
+ serviceCont: 5
+ memory: 1
+ bandwidth: 0
+ latency: 6
+ storage: 5
+ appSoftVersion: appSoftVersion
+ appDVersion: appDVersion
+ appLocation:
+ - area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ - area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ appName: appName
+ appDescription: appDescription
+ appDId: appDId
+ appProvider: appProvider
+ vendorSpecificExt:
+ vendorId: vendorId
+ - appInfo:
+ appCharcs:
+ serviceCont: 5
+ memory: 1
+ bandwidth: 0
+ latency: 6
+ storage: 5
+ appSoftVersion: appSoftVersion
+ appDVersion: appDVersion
+ appLocation:
+ - area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ - area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ appName: appName
+ appDescription: appDescription
+ appDId: appDId
+ appProvider: appProvider
+ vendorSpecificExt:
+ vendorId: vendorId
+ x-etsi-notes: "NOTE 1:\tThe vendor specific extension allows submitting information\
+ \ on the application lists that have been made available to the device application\
+ \ of the corresponding vendor.\nNOTE 2:\tThe language support may be limited.\
+ \ The length of the value shall not exceed 128 characters."
+ x-etsi-ref: 6.2.2
+ ApplicationLocationAvailability:
+ required:
+ - appInfo
+ - associateDevAppId
+ type: object
+ properties:
+ appInfo:
+ $ref: '#/components/schemas/ApplicationLocationAvailability_appInfo'
+ associateDevAppId:
+ maxLength: 32
+ type: string
+ description: Uniquely identifies the device application. The length of the
+ value shall not exceed 32 characters.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ example:
+ appInfo:
+ appSoftVersion: appSoftVersion
+ appDVersion: appDVersion
+ appPackageSource: http://example.com/aeiou
+ appName: appName
+ appDescription: appDescription
+ appProvider: appProvider
+ availableLocations:
+ - appLocation:
+ area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ - appLocation:
+ area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ associateDevAppId: associateDevAppId
+ x-etsi-ref: 6.2.4
+ ApplicationLocationAvailabilityNotification:
+ required:
+ - availableLocations
+ - notificationType
+ type: object
+ properties:
+ availableLocations:
+ minItems: 1
+ required:
+ - appLocation
+ type: array
+ description: Locations available to the MEC application.
+ items:
+ $ref: '#/components/schemas/ApplicationLocationAvailability_appInfo_availableLocations'
+ x-etsi-mec-cardinality: 1..N
+ x-etsi-mec-origin-type: array (Structure (inline))
+ contextId:
+ type: string
+ description: Uniquely identifies the application context in the MEC system.
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ notificationType:
+ type: string
+ description: Shall be set to "ApplicationLocationAvailabilityNotification".
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ x-etsi-ref: 6.4.5
+ InlineNotification:
+ discriminator:
+ propertyName: NotificationType
+ oneOf:
+ - $ref: '#/components/schemas/AddressChangeNotification'
+ - $ref: '#/components/schemas/ApplicationContextDeleteNotification'
+ - $ref: '#/components/schemas/ApplicationContextUpdateNotification'
+ - $ref: '#/components/schemas/ApplicationLocationAvailabilityNotification'
+ LocationConstraints:
+ type: object
+ properties:
+ area:
+ $ref: '#/components/schemas/Polygon'
+ civicAddressElement:
+ minItems: 0
+ required:
+ - caType
+ - caValue
+ type: array
+ description: Zero or more elements comprising the civic address. Shall be
+ absent if the "area" attribute is present.
+ items:
+ $ref: '#/components/schemas/LocationConstraints_civicAddressElement'
+ x-etsi-mec-cardinality: 0..N
+ x-etsi-mec-origin-type: array (Structure inlined)
+ countryCode:
+ maxLength: 2
+ type: string
+ description: "The two-letter ISO 3166 [7] country code in capital letters.\
+ \ Shall be present in case the \"area\" attribute is absent. May be absent\
+ \ if the \"area\" attribute is present (see note)."
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ example:
+ area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ x-etsi-notes: "NOTE:\tIf both \"countryCode\" and \"area\" are present, no conflicts\
+ \ should exist between the values of these two attributes. In case of conflicts,\
+ \ the API producer (e.g. MEO, MEAO) shall disregard parts of the geographic\
+ \ area signalled by \"area\" that are outside the boundaries of the country\
+ \ signalled by \"countryCode\". If \"countryCode\" is absent, it is solely\
+ \ the \"area\" attribute that defines the location constraint."
+ x-etsi-ref: 6.5.2
+ Polygon:
+ type: object
+ properties:
+ coordinates:
+ minItems: 1
+ type: array
+ items:
+ type: array
+ items:
+ type: array
+ items:
+ type: number
+ format: float
+ x-etsi-mec-cardinality: 1
+ x-etsi-mec-origin-type: array
+ example:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ ProblemDetails:
+ type: object
+ properties:
+ detail:
+ type: string
+ description: A human-readable explanation specific to this occurrence of
+ the problem
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ instance:
+ type: string
+ description: A URI reference that identifies the specific occurrence of
+ the problem
+ format: uri
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: URI
+ status:
+ type: integer
+ description: The HTTP status code for this occurrence of the problem
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Uint32
+ title:
+ type: string
+ description: "A short, human-readable summary of the problem type"
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ type:
+ type: string
+ description: A URI reference according to IETF RFC 3986 that identifies
+ the problem type
+ format: uri
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: URI
+ Links:
+ required:
+ - self
+ type: object
+ properties:
+ self:
+ $ref: '#/components/schemas/LinkType'
+ description: Hyperlink related to the resource. This shall be only included
+ in the HTTP responses and in HTTP PUT requests.
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Structure (inlined)
+ LinkType:
+ required:
+ - href
+ type: object
+ properties:
+ href:
+ type: string
+ description: URI referring to a resource
+ format: uri
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Uri
+ example:
+ href: http://example.com/aeiou
+ x-etsi-ref: 6.5.13
+ AppTerminationNotification:
+ required:
+ - _links
+ - maxGracefulTimeout
+ - notificationType
+ - operationAction
+ type: object
+ properties:
+ notificationType:
+ type: string
+ description: Shall be set to AppTerminationNotification.
+ operationAction:
+ $ref: '#/components/schemas/OperationActionType'
+ maxGracefulTimeout:
+ type: integer
+ description: Maximum timeout value in seconds for graceful termination or
+ graceful stop of an application instance.
+ format: uint32
+ _links:
+ $ref: '#/components/schemas/AppTerminationNotification__links'
+ description: This type represents the information that the MEC platform notifies
+ the subscribed application instance about the corresponding application instance
+ termination/stop.
+ OperationActionType:
+ type: string
+ description: Operation that is being performed on the MEC application instance.
+ enum:
+ - STOPPING
+ - TERMINATING
+ AppTerminationNotification__links:
+ required:
+ - subscription
+ type: object
+ properties:
+ subscription:
+ $ref: '#/components/schemas/LinkType'
+ confirmTermination:
+ $ref: '#/components/schemas/LinkType'
+ description: Object containing hyperlinks related to the resource.
+ AppContext_appInfo_userAppInstanceInfo:
+ type: object
+ properties:
+ appInstanceId:
+ type: string
+ description: Identifier of the user application instance. It shall only
+ be included in the response.
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ appLocation:
+ $ref: '#/components/schemas/LocationConstraints'
+ referenceURI:
+ type: string
+ description: Address of the user application instance. It shall only be
+ included in the response.
+ format: uri
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: URI
+ example:
+ appInstanceId: appInstanceId
+ appLocation:
+ area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ referenceURI: http://example.com/aeiou
+ AppContext_appInfo:
+ required:
+ - appDVersion
+ - appName
+ - appProvider
+ - userAppInstanceInfo
+ type: object
+ properties:
+ appDId:
+ type: string
+ description: "Identifier of this MEC application descriptor. This attribute\
+ \ shall be globally unique. It is equivalent to the appDId defined in\
+ \ clause 6.2.1.2 of ETSI GS MEC 0102 [1]. It shall be present if the application\
+ \ is one in the ApplicationList."
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ appDVersion:
+ type: string
+ description: "Identifies the version of the application descriptor. It is\
+ \ equivalent to the appDVersion defined in clause 6.2.1.2 of ETSI GS MEC\
+ \ 0102 [1]."
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appDescription:
+ maxLength: 128
+ type: string
+ description: Human readable description of the MEC application. The length
+ of the value shall not exceed 128 characters.
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ appName:
+ maxLength: 32
+ type: string
+ description: Name of the MEC application. The length of the value shall
+ not exceed 32 characters.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appProvider:
+ maxLength: 32
+ type: string
+ description: |-
+ Provider of the MEC application.
+ The length of the value shall not exceed 32 characters.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appSoftVersion:
+ maxLength: 32
+ type: string
+ description: Software version of the MEC application. The length of the
+ value shall not exceed 32 characters.
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ appPackageSource:
+ type: string
+ description: "URI of the application package.\nIncluded in the request if\
+ \ the application is not one in the ApplicationList. appPackageSource\
+ \ enables on-boarding of the application package into the MEC system.\
+ \ The application package shall comply with the definitions in clause\
+ \ 6.2.1.2 of ETSI GS MEC 0102 [1]."
+ format: uri
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: URI
+ userAppInstanceInfo:
+ minItems: 1
+ type: array
+ description: List of user application instance information.
+ items:
+ $ref: '#/components/schemas/AppContext_appInfo_userAppInstanceInfo'
+ x-etsi-mec-cardinality: 1..N
+ x-etsi-mec-origin-type: array (Structure inlined)
+ description: ""
+ example:
+ appSoftVersion: appSoftVersion
+ appDVersion: appDVersion
+ appPackageSource: http://example.com/aeiou
+ appName: appName
+ appDescription: appDescription
+ userAppInstanceInfo:
+ - appInstanceId: appInstanceId
+ appLocation:
+ area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ referenceURI: http://example.com/aeiou
+ - appInstanceId: appInstanceId
+ appLocation:
+ area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ referenceURI: http://example.com/aeiou
+ appDId: appDId
+ appProvider: appProvider
+ ApplicationContextUpdateNotification_userAppInstanceInfo:
+ type: object
+ properties:
+ appInstanceId:
+ type: string
+ description: Identifier of the user application instance.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appLocation:
+ $ref: '#/components/schemas/LocationConstraints'
+ referenceURI:
+ type: string
+ description: Address of the user application instance.
+ format: uri
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: URI
+ example: null
+ ApplicationList_appInfo_appCharcs:
+ type: object
+ properties:
+ bandwidth:
+ type: integer
+ description: 'The required connection bandwidth in kbit/s for the use of
+ the MEC application instance. '
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: uint32
+ latency:
+ type: integer
+ description: The target round trip time in milliseconds supported by the
+ MEC system for the MEC application instance.
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: uint32
+ memory:
+ type: integer
+ description: The maximum size in Mbytes of the memory resource expected
+ to be used by the MEC application instance in the MEC system.
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: uint32
+ serviceCont:
+ type: integer
+ description: "Required service continuity mode for this application. Permitted\
+ \ values: 0 = SERVICE_CONTINUITY_NOT_REQUIRED. 1 = SERVICE_CONTINUITY_REQUIRED."
+ enum:
+ - 0
+ - 1
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Enum
+ storage:
+ type: integer
+ description: The maximum size in Mbytes of the storage resource expected
+ to be used by the MEC application instance in the MEC system.
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: uint32
+ description: Characteristics of the application. As defined below. The application
+ characteristics relate to the system resources consumed by the application.
+ A device application can use this information e.g. for estimating the cost
+ of use of the application or for the expected user experience.
+ example:
+ serviceCont: 5
+ memory: 1
+ bandwidth: 0
+ latency: 6
+ storage: 5
+ ApplicationList_appInfo:
+ required:
+ - appDId
+ - appDVersion
+ - appDescription
+ - appName
+ - appProvider
+ - appSoftVersion
+ type: object
+ properties:
+ appCharcs:
+ $ref: '#/components/schemas/ApplicationList_appInfo_appCharcs'
+ appDId:
+ type: string
+ description: "Identifier of this MEC application descriptor. It is equivalent\
+ \ to the appDId defined in clause 6.2.1.2 of ETSI GS MEC 0102 [1]. This\
+ \ attribute shall be globally unique."
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appDVersion:
+ type: string
+ description: "Identifies the version of the application descriptor. It is\
+ \ equivalent to the appDVersion defined in clause 6.2.1.2 of ETSI GS MEC\
+ \ 0102 [1]."
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appDescription:
+ maxLength: 128
+ type: string
+ description: Human readable description of the MEC application (see note
+ 2).
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appLocation:
+ minItems: 0
+ type: array
+ description: Identifies the locations of the MEC application.
+ items:
+ $ref: '#/components/schemas/LocationConstraints'
+ x-etsi-mec-cardinality: 0..N
+ x-etsi-mec-origin-type: LocationConstraints
+ appName:
+ maxLength: 32
+ type: string
+ description: Name of the MEC application. The length of the value shall
+ not exceed 32 characters.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appProvider:
+ maxLength: 32
+ type: string
+ description: Provider of the MEC application. The length of the value shall
+ not exceed 32 characters.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appSoftVersion:
+ maxLength: 32
+ type: string
+ description: Software version of the MEC application. The length of the
+ value shall not exceed 32 characters.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ description: ""
+ example:
+ appCharcs:
+ serviceCont: 5
+ memory: 1
+ bandwidth: 0
+ latency: 6
+ storage: 5
+ appSoftVersion: appSoftVersion
+ appDVersion: appDVersion
+ appLocation:
+ - area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ - area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ appName: appName
+ appDescription: appDescription
+ appDId: appDId
+ appProvider: appProvider
+ ApplicationList_vendorSpecificExt:
+ required:
+ - vendorId
+ type: object
+ properties:
+ vendorId:
+ maxLength: 32
+ type: string
+ description: Vendor identifier. The length of the value shall not exceed
+ 32 characters. The rest of the structure of vendor specific extension
+ is not defined.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ description: Extension for vendor specific information (see note 1).
+ example:
+ vendorId: vendorId
+ ApplicationList_appList:
+ type: object
+ properties:
+ appInfo:
+ $ref: '#/components/schemas/ApplicationList_appInfo'
+ vendorSpecificExt:
+ $ref: '#/components/schemas/ApplicationList_vendorSpecificExt'
+ example:
+ appInfo:
+ appCharcs:
+ serviceCont: 5
+ memory: 1
+ bandwidth: 0
+ latency: 6
+ storage: 5
+ appSoftVersion: appSoftVersion
+ appDVersion: appDVersion
+ appLocation:
+ - area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ - area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ appName: appName
+ appDescription: appDescription
+ appDId: appDId
+ appProvider: appProvider
+ vendorSpecificExt:
+ vendorId: vendorId
+ ApplicationLocationAvailability_appInfo_availableLocations:
+ type: object
+ properties:
+ appLocation:
+ $ref: '#/components/schemas/LocationConstraints'
+ example:
+ appLocation:
+ area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ ApplicationLocationAvailability_appInfo:
+ required:
+ - appDVersion
+ - appName
+ - appProvider
+ type: object
+ properties:
+ appDVersion:
+ type: string
+ description: "Identifies the version of the application descriptor. It is\
+ \ equivalent to the appDVersion defined in clause 6.2.1.2 of ETSI GS MEC\
+ \ 0102 [1]."
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appDescription:
+ maxLength: 128
+ type: string
+ description: Human readable description of the MEC application. The length
+ of the value shall not exceed 128 characters.
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ appName:
+ maxLength: 32
+ type: string
+ description: Name of the MEC application. The length of the value shall
+ not exceed 32 characters.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appPackageSource:
+ type: string
+ description: "URI of the application package. Shall be included in the request.\
+ \ The application package shall comply with the definitions in clause\
+ \ 6.2.1.2 of ETSI GS MEC 0102 [1]."
+ format: uri
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: URI
+ appProvider:
+ maxLength: 32
+ type: string
+ description: Provider of the MEC application. The length of the value shall
+ not exceed 32 characters.
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appSoftVersion:
+ maxLength: 32
+ type: string
+ description: Software version of the MEC application. The length of the
+ value shall not exceed 32 characters.
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ availableLocations:
+ minItems: 0
+ type: array
+ description: 'MEC application location constraints. '
+ items:
+ $ref: '#/components/schemas/ApplicationLocationAvailability_appInfo_availableLocations'
+ x-etsi-mec-cardinality: 0..N
+ x-etsi-mec-origin-type: array (Structure (inline))
+ description: ""
+ example:
+ appSoftVersion: appSoftVersion
+ appDVersion: appDVersion
+ appPackageSource: http://example.com/aeiou
+ appName: appName
+ appDescription: appDescription
+ appProvider: appProvider
+ availableLocations:
+ - appLocation:
+ area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ - appLocation:
+ area:
+ coordinates:
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ - - - 2.302136
+ - 2.302136
+ - - 2.302136
+ - 2.302136
+ countryCode: countryCode
+ civicAddressElement:
+ - caType: 7
+ caValue: caValue
+ - caType: 7
+ caValue: caValue
+ LocationConstraints_civicAddressElement:
+ type: object
+ properties:
+ caType:
+ type: integer
+ description: "Describe the content type of caValue. The value of caType\
+ \ shall comply with section 3.4 of IETF RFC 4776 [6]. "
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Integer
+ caValue:
+ type: string
+ description: "Content of civic address element corresponding to the caType.\
+ \ The format caValue shall comply with section 3.4 of IETF RFC 4776 [6]."
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ example:
+ caType: 7
+ caValue: caValue
+ responses:
+ "204":
+ description: "Upon success, a response 204 No Content without any response body\
+ \ is returned."
+ "400":
+ description: "Bad Request : used to indicate that incorrect parameters were\
+ \ passed to the request."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "401":
+ description: "Unauthorized : used when the client did not submit credentials."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: "Forbidden : operation is not allowed given the current status\
+ \ of the resource."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: "Not Found : used when a client provided a URI that cannot be\
+ \ mapped to a valid resource URI."
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ parameters:
+ Query.appName:
+ name: appName
+ in: query
+ description: Name to identify the MEC application.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ maxLength: 32
+ type: string
+ Query.appProvider:
+ name: appProvider
+ in: query
+ description: Provider of the MEC application.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ maxLength: 32
+ type: string
+ Query.appSoftVersion:
+ name: appSoftVersion
+ in: query
+ description: Software version of the MEC application.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ maxLength: 32
+ type: string
+ Query.vendorId:
+ name: vendorId
+ in: query
+ description: Vendor identifier
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ maxLength: 32
+ type: string
+ Query.serviceCont:
+ name: serviceCont
+ in: query
+ description: "Required service continuity mode for this application. Permitted\
+ \ values: 0 = SERVICE_CONTINUITY_NOT_REQUIRED. 1 = SERVICE_CONTINUITY_REQUIRED."
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: integer
+ enum:
+ - 0
+ - 1
+ Path.contextId:
+ name: contextId
+ in: path
+ description: Uniquely identifies the application context in the MEC system.
+ It is assigned by the MEC system.
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
diff --git a/config/api/mts-api.yaml b/config/api/mts-api.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b16494e62c3b1cf683f33be22f25f9a42281f723
--- /dev/null
+++ b/config/api/mts-api.yaml
@@ -0,0 +1,802 @@
+openapi: 3.0.0
+info:
+ contact:
+ url: 'https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api'
+ title: ETSI GS MEC 015 - Multi-access Traffic Steering API
+ version: 2.2.1
+ description: >-
+ 'The ETSI MEC ISG MEC015 Multi-access Traffic Steering API described using OpenAPI
+
**Note**
MEC Sandbox supports all MTS API endpoints; complete details on the MTS API can be found on [ETSI Forge](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/02.02.01_60/gs_mec015v020201p.pdf).'
+ license:
+ name: BSD-3-Clause
+ url: 'https://forge.etsi.org/legal-matters'
+externalDocs:
+ description: ETSI MEC015 V2.2.1 Traffic Management API
+ url: >-
+ https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/02.02.01_60/gs_mec015v020201p.pdf
+servers:
+ - url: 'https://localhost/sandboxname/mts/v1'
+tags:
+- name: mts
+paths:
+ /mts_capability_info:
+ get:
+ tags:
+ - mts
+ summary: Retrieve the MTS capability informations
+ description: Used to query information about the MTS information. Typically
+ used in the 'Get MTS service Info from the MTS Service' procedure as described
+ in clause 6.2.6.
+ operationId: mtsCapabilityInfoGET
+ parameters: []
+ responses:
+ "200":
+ description: Upon success, a response body containing the MTS capability
+ information is returned.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/MtsCapabilityInfo'
+ "400":
+ description: 'Bad Request : used to indicate that incorrect parameters were
+ passed to the request.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: 'Forbidden : operation is not allowed given the current status
+ of the resource.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: 'Not Found : used when a client provided a URI that cannot
+ be mapped to a valid resource URI.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ /mts_sessions:
+ get:
+ tags:
+ - mts
+ summary: Retrieve information about a list of MTS sessions
+ description: Retrieves information about a list of MTS sessions. Typically used
+ in the 'Get configured MTS Session Info from the MTS Service' procedure as
+ described in clause 6.2.10.
+ operationId: mtsSessionsListGET
+ parameters:
+ - name: app_instance_id
+ in: query
+ description: A MEC application instance may use multiple app_instance_ids
+ as an input parameter to query the MTS session of a list of MEC application
+ instances. See note.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ type: string
+ - name: app_name
+ in: query
+ description: A MEC application instance may use multiple app_names as an input
+ parameter to query the MTS session of a list of MEC application instances.
+ See note.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ type: string
+ - name: session_id
+ in: query
+ description: A MEC application instance may use session_id as an input parameter
+ to query the information of a list of MTS sessions. See note.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ type: string
+ responses:
+ "200":
+ description: Upon success, a response body containing an array of the MTS
+ sessions is returned.
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/MtsSessionInfo'
+ x-content-type: application/json
+ "400":
+ description: 'Bad Request : used to indicate that incorrect parameters were
+ passed to the request.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: 'Forbidden : operation is not allowed given the current status
+ of the resource.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: 'Not Found : used when a client provided a URI that cannot
+ be mapped to a valid resource URI.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ post:
+ tags:
+ - mts
+ summary: Create a MTS session
+ description: Used to create a MTS session. This method is typically used in
+ 'Register application to the MTS Service' procedure as described in clause
+ 6.2.7.
+ operationId: mtsSessionPOST
+ parameters: []
+ requestBody:
+ description: Entity body in the request contains MtsSessionInfo to be created.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/MtsSessionInfo'
+ required: true
+ responses:
+ "201":
+ description: Upon success, the HTTP response shall include a 'Location'
+ HTTP header that contains the resource URI of the created resource.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/MtsSessionInfo'
+ "400":
+ description: 'Bad Request : used to indicate that incorrect parameters were
+ passed to the request.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: 'Forbidden : operation is not allowed given the current status
+ of the resource.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: 'Not Found : used when a client provided a URI that cannot
+ be mapped to a valid resource URI.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ /mts_sessions/{sessionId}:
+ get:
+ tags:
+ - mts
+ summary: Retrieve information about specific MTS session
+ description: Retrieves information about an individual MTS session. Typically
+ used in the 'Get configured MTS Session Info from the MTS Service' procedure
+ as described in clause 6.2.10.
+ operationId: mtsSessionGET
+ parameters:
+ - name: sessionId
+ in: path
+ description: Represents a MTS session instance
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Used to indicate nonspecific success. The response body contains
+ a representation of the resource.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/MtsSessionInfo'
+ "400":
+ description: 'Bad Request : used to indicate that incorrect parameters were
+ passed to the request.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: 'Forbidden : operation is not allowed given the current status
+ of the resource.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: 'Not Found : used when a client provided a URI that cannot
+ be mapped to a valid resource URI.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ put:
+ tags:
+ - mts
+ summary: Update the information about specific MTS session
+ description: 'Updates the information about an individual MTS session. As specified
+ in ETSI GS MEC 009 [6], the PUT HTTP method has ''replace'' semantics. '
+ operationId: mtsSessionPUT
+ parameters:
+ - name: sessionId
+ in: path
+ description: Represents a MTS session instance
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ requestBody:
+ description: MtsSessionInfo with updated information is included as entity
+ body of the request.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/MtsSessionInfo'
+ required: true
+ responses:
+ "200":
+ description: Used to indicate nonspecific success. The response body contains
+ a representation of the resource.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/MtsSessionInfo'
+ "400":
+ description: 'Bad Request : used to indicate that incorrect parameters were
+ passed to the request.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: 'Forbidden : operation is not allowed given the current status
+ of the resource.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: 'Not Found : used when a client provided a URI that cannot
+ be mapped to a valid resource URI.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "412":
+ description: 'Precondition failed : used when a condition has failed during
+ conditional requests, e.g. when using ETags to avoid write conflicts when
+ using PUT'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ delete:
+ tags:
+ - mts
+ summary: Remove specific MTS session
+ description: DELETE method is typically used in 'Unregister from the MTS Service'
+ procedure as described in clause 6.2.8.
+ operationId: mtsSessionDELETE
+ parameters:
+ - name: sessionId
+ in: path
+ description: Represents a MTS session instance
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ responses:
+ "204":
+ description: Upon success, a response 204 No Content without any response
+ body is returned.
+ "403":
+ description: 'Forbidden : operation is not allowed given the current status
+ of the resource.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: 'Not Found : used when a client provided a URI that cannot
+ be mapped to a valid resource URI.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+components:
+ schemas:
+ MtsCapabilityInfo:
+ required:
+ - mtsAccessInfo
+ - mtsMode
+ type: object
+ properties:
+ mtsAccessInfo:
+ minItems: 1
+ required:
+ - accessId
+ - accessType
+ - metered
+ type: array
+ description: The information on access network connection as defined below
+ items:
+ $ref: '#/components/schemas/MtsCapabilityInfo_mtsAccessInfo'
+ x-etsi-mec-cardinality: 1..N
+ x-etsi-mec-origin-type: Structure (inlined)
+ mtsMode:
+ minItems: 1
+ type: array
+ description: Numeric value corresponding to a specific MTS operation supported
+ by the TMS 0 = low cost, i.e. using the unmetered access network connection
+ whenever it is available 1 = low latency, i.e. using the access network
+ connection with lower latency 2 = high throughput, i.e. using the access
+ network connection with higher throughput, or/and multiple access network
+ connection simultaneously if supported 3 = redundancy, i.e. sending duplicated
+ (redundancy) packets over multiple access network connections for highreliability
+ and low-latency applications 4 = QoS, i.e. performing MTS based on the
+ specific QoS requirements from the app
+ items:
+ type: integer
+ format: uint32
+ x-etsi-mec-cardinality: 1..N
+ x-etsi-mec-origin-type: Uint32
+ timeStamp:
+ $ref: '#/components/schemas/MtsCapabilityInfo_timeStamp'
+ example:
+ timeStamp:
+ seconds: 2
+ nanoSeconds: 5
+ mtsMode:
+ - 5
+ - 5
+ mtsAccessInfo:
+ - accessId: 0
+ accessType: 6
+ metered: 1
+ - accessId: 0
+ accessType: 6
+ metered: 1
+ x-etsi-notes: "NOTE:\tA metered connection is a network connection that has\
+ \ a maximum data usage in a specific period, e.g. per hour/day/week/month.\
+ \ The user may get billed extra charges if they go over the allotted amount."
+ x-etsi-ref: 7.2.4
+ MtsSessionInfo:
+ required:
+ - appInsId
+ - flowFilter
+ - mtsMode
+ - qosD
+ - requestType
+ - trafficDirection
+ type: object
+ properties:
+ sessionId:
+ type: string
+ description: MTS session instance identifier
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ appInsId:
+ type: string
+ description: Application instance identifier
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ appName:
+ type: string
+ description: Name of the application
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ flowFilter:
+ minItems: 1
+ type: array
+ description: Traffic flow filtering criteria, applicable only if when requestType
+ is set as FLOW_SPECIFIC_MTS_SESSION. Any filtering criteria shall define
+ a single session only. In case multiple sessions match flowFilter the
+ request shall be rejected. If the flowFilter field is included, at least
+ one of its subfields shall be included. Any flowFilter subfield that is
+ not included shall be ignored in traffic flow filtering
+ items:
+ $ref: '#/components/schemas/MtsSessionInfo_flowFilter'
+ x-etsi-mec-cardinality: 1..N
+ x-etsi-mec-origin-type: Structure (inlined)
+ mtsMode:
+ type: integer
+ description: 'Numeric value (0 - 255) corresponding to a specific MTS mode
+ of the MTS session: 0 = low cost, i.e. using the unmetered access network
+ connection whenever it is available 1 = low latency, i.e. using the access
+ network connection with lower latency 2 = high throughput, i.e. using
+ the access network connection with higher throughput, or multiple access
+ network connection simultaneously 3 = redundancy, i.e. sending duplicated
+ (redundancy) packets over multiple access network connections for high-reliability
+ and low-latency applications 4 = QoS, i.e. performing MTS based on the
+ QoS requirement (qosD)'
+ format: uint32
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Uint32
+ qosD:
+ $ref: '#/components/schemas/MtsSessionInfo_qosD'
+ requestType:
+ type: integer
+ description: 'Numeric value (0 - 255) corresponding to specific type of
+ consumer as following: 0 = APPLICATION_SPECIFIC_MTS_SESSION 1 = FLOW_SPECIFIC_MTS_SESSION'
+ enum:
+ - 0
+ - 1
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Enum_inlined
+ timeStamp:
+ $ref: '#/components/schemas/MtsSessionInfo_timeStamp'
+ trafficDirection:
+ type: string
+ description: 'The direction of the requested MTS session: 00 = Downlink
+ (towards the UE) 01 = Uplink (towards the application/session) 10 = Symmetrical
+ (see note) '
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: String
+ example:
+ timeStamp:
+ seconds: 1
+ nanoSeconds: 1
+ flowFilter:
+ - flowlabel: 1
+ protocol: 5
+ sourcePort:
+ - 5
+ - 5
+ dscp: 0
+ dstPort:
+ - 6
+ - 6
+ sourceIp: sourceIp
+ dstIp: dstIp
+ - flowlabel: 1
+ protocol: 5
+ sourcePort:
+ - 5
+ - 5
+ dscp: 0
+ dstPort:
+ - 6
+ - 6
+ sourceIp: sourceIp
+ dstIp: dstIp
+ requestType: 7
+ appName: appName
+ qosD:
+ maxJitter: 7
+ maxLatency: 9
+ maxLoss: 3
+ priority: 4
+ minTpt: 2
+ sessionId: sessionId
+ appInsId: appInsId
+ trafficDirection: trafficDirection
+ mtsMode: 2
+ x-etsi-notes: "NOTE:\tFor the downlink direction of a symmetrical flow, \"sourceIp\"\
+ \ and \"sourcePort\" in the \"flowFilter\" structure are used for source address\
+ \ and port, respectively; \"dstIp\" and \"dstPort\" are used for destination\
+ \ address and port, respectively. For the uplink direction of a symmetrical\
+ \ flow, \"sourceIp\" and \"sourcePort\" are used for destination address and\
+ \ port, respectively; \"dstIp\" and \"dstPort\" are used for source address\
+ \ and port, respectively."
+ x-etsi-ref: 7.2.5
+ ProblemDetails:
+ type: object
+ properties:
+ detail:
+ type: string
+ description: A human-readable explanation specific to this occurrence of
+ the problem
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ instance:
+ type: string
+ description: A URI reference that identifies the specific occurrence of
+ the problem
+ format: uri
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: URI
+ status:
+ type: integer
+ description: The HTTP status code for this occurrence of the problem
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Uint32
+ title:
+ type: string
+ description: A short, human-readable summary of the problem type
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ type:
+ type: string
+ description: A URI reference according to IETF RFC 3986 that identifies
+ the problem type
+ format: uri
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: URI
+ MtsCapabilityInfo_mtsAccessInfo:
+ type: object
+ properties:
+ accessId:
+ type: integer
+ description: Unique identifier for the access network connection
+ format: uint32
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Uint32
+ accessType:
+ type: integer
+ description: 'Numeric value (0-255) corresponding to specific type of access
+ network as following: 0 = Unknown 1 = Any IEEE802.11-based WLAN technology
+ 2 = Any 3GPP-based Cellular technology 3 = Any Fixed Access 11 = IEEE802.11
+ a/b/g WLAN 12 = IEEE 802.11 a/b/g/n WLAN 13 = IEEE 802.11 a/b/g/n/ac WLAN
+ 14 = IEEE 802.11 a/b/g/n/ac/ax WLAN (Wi-Fi 6) 15 = IEEE 802.11 b/g/n WLAN
+ 31 = 3GPP GERAN/UTRA (2G/3G) 32 = 3GPP E-UTRA (4G/LTE) 33 = 3GPP NR (5G)'
+ format: uint32
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Uint32
+ metered:
+ type: integer
+ description: 'Numeric value (0-255) corresponding to the following: 0: the
+ connection is not metered (see note) 1: the connection is metered 2: unknown '
+ format: uint32
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Uint32
+ example:
+ accessId: 0
+ accessType: 6
+ metered: 1
+ MtsCapabilityInfo_timeStamp:
+ required:
+ - nanoSeconds
+ - seconds
+ type: object
+ properties:
+ nanoSeconds:
+ type: integer
+ description: Time in nanoseconds in Unix-time since January 1, 1970, 00:00:00
+ UTC
+ format: uint32
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Uint32
+ seconds:
+ type: integer
+ description: Time in seconds in Unix-time since January 1, 1970, 00:00:00
+ UTC
+ format: uint32
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Uint32
+ description: Time stamp to indicate when the corresponding information elements
+ are sent
+ example:
+ seconds: 2
+ nanoSeconds: 5
+ MtsSessionInfo_flowFilter:
+ type: object
+ properties:
+ dscp:
+ type: integer
+ description: DSCP in the IPv4 header or Traffic Class in the IPv6 header
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Uint32
+ dstIp:
+ type: string
+ description: Destination address identity of session (including range)
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ dstPort:
+ minItems: 0
+ type: array
+ description: Destination port identity of session
+ items:
+ type: integer
+ format: uint32
+ x-etsi-mec-cardinality: 0..N
+ x-etsi-mec-origin-type: Uint32
+ flowlabel:
+ type: integer
+ description: Flow Label in the IPv6 header, applicable only if the flow
+ is IPv6
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Uint32
+ protocol:
+ type: integer
+ description: Protocol number
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Uint32
+ sourceIp:
+ type: string
+ description: Source address identity of session (including range)
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: String
+ sourcePort:
+ minItems: 0
+ type: array
+ description: Source port identity of session
+ items:
+ type: integer
+ format: uint32
+ x-etsi-mec-cardinality: 0..N
+ x-etsi-mec-origin-type: Uint32
+ example:
+ flowlabel: 1
+ protocol: 5
+ sourcePort:
+ - 5
+ - 5
+ dscp: 0
+ dstPort:
+ - 6
+ - 6
+ sourceIp: sourceIp
+ dstIp: dstIp
+ MtsSessionInfo_qosD:
+ type: object
+ properties:
+ maxJitter:
+ type: integer
+ description: tolerable jitter in [10 nanoseconds]
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Uint32
+ maxLatency:
+ type: integer
+ description: tolerable (one-way) delay in [10 nanoseconds]
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Uint32
+ maxLoss:
+ type: integer
+ description: tolerable packet loss rate in [1/10^x]
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Uint32
+ minTpt:
+ type: integer
+ description: minimal throughput in [kbps]
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Uint32
+ priority:
+ type: integer
+ description: 'numeric value (0 - 255) corresponding to the traffic priority
+ 0: low; 1: medium; 2: high; 3: critical'
+ format: uint32
+ x-etsi-mec-cardinality: 0..1
+ x-etsi-mec-origin-type: Uint32
+ description: QoS requirement description of the MTS session, applicable only
+ if mtsMode = 4 (QoS). If the qosD field is included, at least one of its subfields
+ shall be included. Any qosD subfield that is not included shall be ignored
+ in Multi-access Traffic Steering (MTS)
+ example:
+ maxJitter: 7
+ maxLatency: 9
+ maxLoss: 3
+ priority: 4
+ minTpt: 2
+ MtsSessionInfo_timeStamp:
+ required:
+ - nanoSeconds
+ - seconds
+ type: object
+ properties:
+ nanoSeconds:
+ type: integer
+ description: The nanoseconds part of the Time. Time is defined as Unix-time
+ since January 1, 1970, 00:00:00 UTC
+ format: uint32
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Uint32
+ seconds:
+ type: integer
+ description: The seconds part of the Time. Time is defined as Unixtime since
+ January 1, 1970, 00:00:00 UTC
+ format: uint32
+ x-etsi-mec-cardinality: "1"
+ x-etsi-mec-origin-type: Uint32
+ description: 'Time stamp to indicate when the corresponding information elements
+ are sent '
+ example:
+ seconds: 1
+ nanoSeconds: 1
+ responses:
+ "204":
+ description: Upon success, a response 204 No Content without any response body
+ is returned.
+ "400":
+ description: 'Bad Request : used to indicate that incorrect parameters were
+ passed to the request.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "403":
+ description: 'Forbidden : operation is not allowed given the current status
+ of the resource.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "404":
+ description: 'Not Found : used when a client provided a URI that cannot be
+ mapped to a valid resource URI.'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ "412":
+ description: 'Precondition failed : used when a condition has failed during
+ conditional requests, e.g. when using ETags to avoid write conflicts when
+ using PUT'
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ parameters:
+ Path.sessionId:
+ name: sessionId
+ in: path
+ description: Represents a MTS session instance
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ Query.app_instance_id:
+ name: app_instance_id
+ in: query
+ description: A MEC application instance may use multiple app_instance_ids as
+ an input parameter to query the MTS session of a list of MEC application instances.
+ See note.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ type: string
+ Query.app_name:
+ name: app_name
+ in: query
+ description: A MEC application instance may use multiple app_names as an input
+ parameter to query the MTS session of a list of MEC application instances.
+ See note.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ type: string
+ Query.session_id:
+ name: session_id
+ in: query
+ description: A MEC application instance may use session_id as an input parameter
+ to query the information of a list of MTS sessions. See note.
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: array
+ items:
+ type: string
diff --git a/config/dashboards/mec-sandbox.json b/config/dashboards/mec-sandbox.json
index 17807cd55927507b78e44dec94c7ad92b68fb8bb..c60684c3c63b95ca46305f3f3eeb0b525bcc219e 100644
--- a/config/dashboards/mec-sandbox.json
+++ b/config/dashboards/mec-sandbox.json
@@ -73,9 +73,7 @@
"options": {
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -140,9 +138,7 @@
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -195,9 +191,7 @@
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "mean"
- ],
+ "calcs": ["mean"],
"fields": "",
"values": false
},
@@ -208,15 +202,11 @@
{
"groupBy": [
{
- "params": [
- "$__interval"
- ],
+ "params": ["$__interval"],
"type": "time"
},
{
- "params": [
- "null"
- ],
+ "params": ["null"],
"type": "fill"
}
],
@@ -229,9 +219,7 @@
"select": [
[
{
- "params": [
- "value"
- ],
+ "params": ["value"],
"type": "field"
},
{
@@ -282,9 +270,7 @@
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -346,9 +332,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -523,9 +507,7 @@
"displayMode": "gradient",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "max"
- ],
+ "calcs": ["max"],
"fields": "",
"values": false
},
@@ -645,9 +627,7 @@
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -656,7 +636,7 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"intervalFactor": 1,
@@ -704,9 +684,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -715,28 +693,28 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"2.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"2.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"2.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"2.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"2.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"2.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "2xx",
"refId": "B"
},
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"3.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"3.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"3.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"3.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"3.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"3.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "3xx",
"refId": "C"
},
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"4.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"4.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"4.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"4.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"4.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"4.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "4xx",
"refId": "D"
},
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"5.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"5.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"5.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"5.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"5.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"5.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "5xx",
@@ -781,9 +759,7 @@
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -792,7 +768,7 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"intervalFactor": 1,
@@ -840,9 +816,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -851,28 +825,28 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"2.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"2.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"2.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"2.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"2.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"2.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "2xx",
"refId": "B"
},
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"3.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"3.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"3.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"3.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"3.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"3.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "3xx",
"refId": "C"
},
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"4.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"4.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"4.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"4.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"4.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"4.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "4xx",
"refId": "D"
},
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"5.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"5.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\",status=~\"5.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"5.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"5.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\",status=~\"5.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "5xx",
@@ -947,9 +921,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "mean"
- ],
+ "calcs": ["mean"],
"fields": "",
"values": false
},
@@ -958,7 +930,7 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "topk(10, sort_desc(sum by (svc,path,method)((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"} offset $__range))))",
+ "expr": "topk(10, sort_desc(sum by (svc,path,method)((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"} offset $__range))))",
"format": "time_series",
"instant": true,
"interval": "",
@@ -1035,9 +1007,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "mean"
- ],
+ "calcs": ["mean"],
"fields": "",
"values": false
},
@@ -1046,7 +1016,7 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "topk(10, sort_desc(sum by (svc,notif)((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec021|$mec028|$mec030\"} offset $__range))))",
+ "expr": "topk(10, sort_desc(sum by (svc,notif)((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec011|$mec012|$mec013|$mec015|$mec016|$mec021|$mec028|$mec030\"} offset $__range))))",
"format": "time_series",
"instant": true,
"interval": "",
@@ -1154,9 +1124,7 @@
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -1213,9 +1181,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -1290,9 +1256,7 @@
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -1349,9 +1313,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -1456,9 +1418,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "mean"
- ],
+ "calcs": ["mean"],
"fields": "",
"values": false
},
@@ -1544,9 +1504,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "mean"
- ],
+ "calcs": ["mean"],
"fields": "",
"values": false
},
@@ -1667,9 +1625,7 @@
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -1726,9 +1682,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -1803,9 +1757,7 @@
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -1862,9 +1814,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -1969,9 +1919,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "mean"
- ],
+ "calcs": ["mean"],
"fields": "",
"values": false
},
@@ -2057,9 +2005,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "mean"
- ],
+ "calcs": ["mean"],
"fields": "",
"values": false
},
@@ -2180,9 +2126,7 @@
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -2239,9 +2183,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -2316,9 +2258,7 @@
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -2375,9 +2315,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -2482,9 +2420,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "mean"
- ],
+ "calcs": ["mean"],
"fields": "",
"values": false
},
@@ -2570,9 +2506,7 @@
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "mean"
- ],
+ "calcs": ["mean"],
"fields": "",
"values": false
},
@@ -2608,7 +2542,7 @@
"x": 0,
"y": 33
},
- "id": 110,
+ "id": 136,
"panels": [
{
"datasource": null,
@@ -2624,7 +2558,7 @@
"x": 0,
"y": 34
},
- "id": 111,
+ "id": 137,
"options": {
"content": "",
"mode": "markdown"
@@ -2649,7 +2583,7 @@
"x": 12,
"y": 34
},
- "id": 112,
+ "id": 138,
"options": {
"content": "",
"mode": "markdown"
@@ -2686,16 +2620,14 @@
"x": 0,
"y": 35
},
- "id": 113,
+ "id": 139,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -2704,7 +2636,7 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"intervalFactor": 1,
@@ -2747,14 +2679,12 @@
"x": 4,
"y": 35
},
- "id": 114,
+ "id": 140,
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -2763,28 +2693,28 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"2.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"2.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"2.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "2xx",
"refId": "B"
},
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"3.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"3.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"3.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "3xx",
"refId": "C"
},
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"4.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"4.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"4.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "4xx",
"refId": "D"
},
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"5.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"5.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"5.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "5xx",
@@ -2822,16 +2752,14 @@
"x": 12,
"y": 35
},
- "id": 115,
+ "id": 141,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -2840,7 +2768,7 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"intervalFactor": 1,
@@ -2883,14 +2811,12 @@
"x": 16,
"y": 35
},
- "id": 116,
+ "id": 142,
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -2899,28 +2825,28 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"2.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"2.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"2.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "2xx",
"refId": "B"
},
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"3.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"3.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"3.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "3xx",
"refId": "C"
},
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"4.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"4.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"4.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "4xx",
"refId": "D"
},
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"5.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"5.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\",status=~\"5.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "5xx",
@@ -2990,14 +2916,12 @@
"x": 0,
"y": 40
},
- "id": 117,
+ "id": 143,
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "mean"
- ],
+ "calcs": ["mean"],
"fields": "",
"values": false
},
@@ -3006,7 +2930,7 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "topk(10, sort_desc(sum by (svc,path,method)((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range))))",
+ "expr": "topk(10, sort_desc(sum by (svc,path,method)((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec015\"} offset $__range))))",
"format": "time_series",
"instant": true,
"interval": "",
@@ -3078,14 +3002,12 @@
"x": 12,
"y": 40
},
- "id": 118,
+ "id": 144,
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "mean"
- ],
+ "calcs": ["mean"],
"fields": "",
"values": false
},
@@ -3094,7 +3016,7 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "topk(10, sort_desc(sum by (svc,notif)((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range))))",
+ "expr": "topk(10, sort_desc(sum by (svc,notif)((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec015\"} offset $__range))))",
"format": "time_series",
"instant": true,
"interval": "",
@@ -3109,7 +3031,7 @@
"type": "bargauge"
}
],
- "title": "MEC021 - Application Mobility Service",
+ "title": "MEC015 - Traffic Management Service",
"type": "row"
},
{
@@ -3121,7 +3043,7 @@
"x": 0,
"y": 34
},
- "id": 78,
+ "id": 145,
"panels": [
{
"datasource": null,
@@ -3137,7 +3059,7 @@
"x": 0,
"y": 35
},
- "id": 85,
+ "id": 146,
"options": {
"content": "",
"mode": "markdown"
@@ -3162,7 +3084,7 @@
"x": 12,
"y": 35
},
- "id": 100,
+ "id": 147,
"options": {
"content": "",
"mode": "markdown"
@@ -3199,16 +3121,14 @@
"x": 0,
"y": 36
},
- "id": 90,
+ "id": 148,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -3217,7 +3137,7 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"intervalFactor": 1,
@@ -3260,14 +3180,12 @@
"x": 4,
"y": 36
},
- "id": 92,
+ "id": 149,
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -3276,28 +3194,28 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"2.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"2.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"2.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "2xx",
"refId": "B"
},
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"3.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"3.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"3.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "3xx",
"refId": "C"
},
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"4.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"4.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"4.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "4xx",
"refId": "D"
},
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"5.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"5.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"5.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "5xx",
@@ -3335,16 +3253,14 @@
"x": 12,
"y": 36
},
- "id": 101,
+ "id": 150,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -3353,7 +3269,7 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"intervalFactor": 1,
@@ -3396,14 +3312,12 @@
"x": 16,
"y": 36
},
- "id": 106,
+ "id": 151,
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -3412,28 +3326,28 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"2.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"2.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"2.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "2xx",
"refId": "B"
},
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"3.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"3.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"3.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "3xx",
"refId": "C"
},
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"4.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"4.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"4.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "4xx",
"refId": "D"
},
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"5.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"5.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\",status=~\"5.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "5xx",
@@ -3503,14 +3417,12 @@
"x": 0,
"y": 41
},
- "id": 86,
+ "id": 152,
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "mean"
- ],
+ "calcs": ["mean"],
"fields": "",
"values": false
},
@@ -3519,7 +3431,7 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "topk(10, sort_desc(sum by (svc,path,method)((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range))))\r",
+ "expr": "topk(10, sort_desc(sum by (svc,path,method)((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec016\"} offset $__range))))",
"format": "time_series",
"instant": true,
"interval": "",
@@ -3591,14 +3503,12 @@
"x": 12,
"y": 41
},
- "id": 97,
+ "id": 153,
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "mean"
- ],
+ "calcs": ["mean"],
"fields": "",
"values": false
},
@@ -3607,7 +3517,7 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "topk(10, sort_desc(sum by (svc,notif)((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range))))",
+ "expr": "topk(10, sort_desc(sum by (svc,notif)((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec016\"} offset $__range))))",
"format": "time_series",
"instant": true,
"interval": "",
@@ -3622,7 +3532,7 @@
"type": "bargauge"
}
],
- "title": "MEC028 - WAI Service",
+ "title": "MEC016 - Device Application Interface Service",
"type": "row"
},
{
@@ -3634,9 +3544,10 @@
"x": 0,
"y": 35
},
- "id": 128,
+ "id": 110,
"panels": [
{
+ "datasource": null,
"fieldConfig": {
"defaults": {
"custom": {}
@@ -3649,17 +3560,16 @@
"x": 0,
"y": 36
},
- "id": 129,
+ "id": 111,
"options": {
- "mode": "markdown",
- "content": ""
+ "content": "",
+ "mode": "markdown"
},
"pluginVersion": "7.3.5",
"timeFrom": null,
"timeShift": null,
"title": "Requests",
- "type": "text",
- "datasource": null
+ "type": "text"
},
{
"datasource": null,
@@ -3675,7 +3585,7 @@
"x": 12,
"y": 36
},
- "id": 135,
+ "id": 112,
"options": {
"content": "",
"mode": "markdown"
@@ -3692,6 +3602,7 @@
"defaults": {
"custom": {},
"decimals": 0,
+ "mappings": [],
"noValue": "0",
"thresholds": {
"mode": "absolute",
@@ -3701,8 +3612,7 @@
"value": null
}
]
- },
- "mappings": []
+ }
},
"overrides": []
},
@@ -3712,25 +3622,23 @@
"x": 0,
"y": 37
},
- "id": 130,
+ "id": 113,
"options": {
- "reduceOptions": {
- "values": false,
- "calcs": [
- "lastNotNull"
- ],
- "fields": ""
- },
- "orientation": "auto",
- "textMode": "value",
"colorMode": "value",
"graphMode": "area",
- "justifyMode": "auto"
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": ["lastNotNull"],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "value"
},
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"intervalFactor": 1,
@@ -3749,6 +3657,7 @@
"defaults": {
"custom": {},
"decimals": 0,
+ "mappings": [],
"noValue": "0",
"thresholds": {
"mode": "absolute",
@@ -3762,8 +3671,7 @@
"value": 0
}
]
- },
- "mappings": []
+ }
},
"overrides": []
},
@@ -3773,44 +3681,42 @@
"x": 4,
"y": 37
},
- "id": 131,
+ "id": 114,
"options": {
+ "displayMode": "gradient",
+ "orientation": "horizontal",
"reduceOptions": {
- "values": false,
- "calcs": [
- "lastNotNull"
- ],
- "fields": ""
+ "calcs": ["lastNotNull"],
+ "fields": "",
+ "values": false
},
- "orientation": "horizontal",
- "displayMode": "gradient",
"showUnfilled": true
},
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "2xx",
"refId": "B"
},
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "3xx",
"refId": "C"
},
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "4xx",
"refId": "D"
},
{
- "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "5xx",
@@ -3822,94 +3728,6 @@
"title": "Request Response Codes",
"type": "bargauge"
},
- {
- "datasource": "Thanos",
- "fieldConfig": {
- "defaults": {
- "custom": {
- "align": "left",
- "filterable": false
- },
- "decimals": 0,
- "displayName": "${__series.name}",
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "dark-blue",
- "value": null
- },
- {
- "color": "blue",
- "value": 0
- }
- ]
- },
- "mappings": []
- },
- "overrides": [
- {
- "matcher": {
- "id": "byName",
- "options": "method"
- },
- "properties": [
- {
- "id": "custom.width",
- "value": 121
- }
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "Time"
- },
- "properties": [
- {
- "id": "custom.width",
- "value": 166
- }
- ]
- }
- ]
- },
- "gridPos": {
- "h": 9,
- "w": 12,
- "x": 0,
- "y": 42
- },
- "id": 132,
- "options": {
- "reduceOptions": {
- "values": false,
- "calcs": [
- "mean"
- ],
- "fields": ""
- },
- "orientation": "horizontal",
- "displayMode": "gradient",
- "showUnfilled": true
- },
- "pluginVersion": "7.3.5",
- "targets": [
- {
- "expr": "topk(10, sort_desc(sum by (svc,path,method)((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range))))\r",
- "format": "time_series",
- "instant": true,
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "{{method}} {{path}}",
- "refId": "A"
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "Top 10 Requests",
- "type": "bargauge"
- },
{
"datasource": "Thanos",
"fieldConfig": {
@@ -3936,16 +3754,14 @@
"x": 12,
"y": 37
},
- "id": 133,
+ "id": 115,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -3954,7 +3770,7 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"intervalFactor": 1,
@@ -3997,14 +3813,12 @@
"x": 16,
"y": 37
},
- "id": 134,
+ "id": 116,
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": ["lastNotNull"],
"fields": "",
"values": false
},
@@ -4013,28 +3827,28 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"2.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "2xx",
"refId": "B"
},
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"3.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "3xx",
"refId": "C"
},
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"4.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "4xx",
"refId": "D"
},
{
- "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"} offset $__range)) or vector(0)",
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\",status=~\"5.*\"} offset $__range)) or vector(0)",
"instant": true,
"interval": "",
"legendFormat": "5xx",
@@ -4061,11 +3875,11 @@
"mode": "absolute",
"steps": [
{
- "color": "dark-purple",
+ "color": "dark-blue",
"value": null
},
{
- "color": "purple",
+ "color": "blue",
"value": 0
}
]
@@ -4101,17 +3915,15 @@
"gridPos": {
"h": 9,
"w": 12,
- "x": 12,
+ "x": 0,
"y": 42
},
- "id": 136,
+ "id": 117,
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
- "calcs": [
- "mean"
- ],
+ "calcs": ["mean"],
"fields": "",
"values": false
},
@@ -4120,68 +3932,1152 @@
"pluginVersion": "7.3.5",
"targets": [
{
- "expr": "topk(10, sort_desc(sum by (svc,notif)((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range))))",
+ "expr": "topk(10, sort_desc(sum by (svc,path,method)((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range))))",
"format": "time_series",
"instant": true,
"interval": "",
"intervalFactor": 1,
- "legendFormat": "{{svc}} | {{notif}}",
+ "legendFormat": "{{method}} {{path}}",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
- "title": "Top 10 Notifications",
+ "title": "Top 10 Requests",
"type": "bargauge"
- }
- ],
- "title": "MEC030 - V2X Information Service",
- "type": "row"
- }
- ],
- "refresh": "15s",
- "schemaVersion": 26,
- "style": "dark",
- "tags": [],
- "templating": {
- "list": [
- {
- "allValue": null,
- "current": {
- "selected": true,
- "text": [
- "All"
- ],
- "value": [
- "$__all"
- ]
- },
- "datasource": "Thanos",
- "definition": "label_values(metrics_http_request_duration_count, replica) ",
- "error": null,
- "hide": 0,
- "includeAll": true,
- "label": "Instance",
- "multi": true,
- "name": "replica",
- "options": [],
- "query": "label_values(metrics_http_request_duration_count, replica) ",
- "refresh": 2,
- "regex": "",
- "skipUrlSync": false,
- "sort": 2,
- "tagValuesQuery": "",
- "tags": [],
- "tagsQuery": "",
- "type": "query",
- "useTags": false
- },
- {
- "allValue": null,
- "current": {
- "selected": false,
- "text": "App Enablement Service",
- "value": "App Enablement Service"
+ },
+ {
+ "datasource": "Thanos",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {
+ "align": "left",
+ "filterable": false
+ },
+ "decimals": 0,
+ "displayName": "${__series.name}",
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "dark-purple",
+ "value": null
+ },
+ {
+ "color": "purple",
+ "value": 0
+ }
+ ]
+ }
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "method"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 121
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Time"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 166
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 9,
+ "w": 12,
+ "x": 12,
+ "y": 42
+ },
+ "id": 118,
+ "options": {
+ "displayMode": "gradient",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": ["mean"],
+ "fields": "",
+ "values": false
+ },
+ "showUnfilled": true
+ },
+ "pluginVersion": "7.3.5",
+ "targets": [
+ {
+ "expr": "topk(10, sort_desc(sum by (svc,notif)((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec021\"} offset $__range))))",
+ "format": "time_series",
+ "instant": true,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{svc}} | {{notif}}",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Top 10 Notifications",
+ "type": "bargauge"
+ }
+ ],
+ "title": "MEC021 - Application Mobility Service",
+ "type": "row"
+ },
+ {
+ "collapsed": true,
+ "datasource": null,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 36
+ },
+ "id": 78,
+ "panels": [
+ {
+ "datasource": null,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 1,
+ "w": 12,
+ "x": 0,
+ "y": 37
+ },
+ "id": 85,
+ "options": {
+ "content": "",
+ "mode": "markdown"
+ },
+ "pluginVersion": "7.3.5",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Requests",
+ "type": "text"
+ },
+ {
+ "datasource": null,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 1,
+ "w": 12,
+ "x": 12,
+ "y": 37
+ },
+ "id": 100,
+ "options": {
+ "content": "",
+ "mode": "markdown"
+ },
+ "pluginVersion": "7.3.5",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Notifications",
+ "type": "text"
+ },
+ {
+ "datasource": "Thanos",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "decimals": 0,
+ "mappings": [],
+ "noValue": "0",
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "blue",
+ "value": null
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 5,
+ "w": 4,
+ "x": 0,
+ "y": 38
+ },
+ "id": 90,
+ "options": {
+ "colorMode": "value",
+ "graphMode": "area",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": ["lastNotNull"],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "value"
+ },
+ "pluginVersion": "7.3.5",
+ "targets": [
+ {
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Total Requests",
+ "type": "stat"
+ },
+ {
+ "datasource": "Thanos",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "decimals": 0,
+ "mappings": [],
+ "noValue": "0",
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "dark-blue",
+ "value": null
+ },
+ {
+ "color": "blue",
+ "value": 0
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 5,
+ "w": 8,
+ "x": 4,
+ "y": 38
+ },
+ "id": 92,
+ "options": {
+ "displayMode": "gradient",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": ["lastNotNull"],
+ "fields": "",
+ "values": false
+ },
+ "showUnfilled": true
+ },
+ "pluginVersion": "7.3.5",
+ "targets": [
+ {
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "2xx",
+ "refId": "B"
+ },
+ {
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "3xx",
+ "refId": "C"
+ },
+ {
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "4xx",
+ "refId": "D"
+ },
+ {
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "5xx",
+ "refId": "E"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Request Response Codes",
+ "type": "bargauge"
+ },
+ {
+ "datasource": "Thanos",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "decimals": 0,
+ "mappings": [],
+ "noValue": "0",
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "purple",
+ "value": null
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 5,
+ "w": 4,
+ "x": 12,
+ "y": 38
+ },
+ "id": 101,
+ "options": {
+ "colorMode": "value",
+ "graphMode": "area",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": ["lastNotNull"],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "value"
+ },
+ "pluginVersion": "7.3.5",
+ "targets": [
+ {
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Total Notifications",
+ "type": "stat"
+ },
+ {
+ "datasource": "Thanos",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "decimals": 0,
+ "mappings": [],
+ "noValue": "0",
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "dark-purple",
+ "value": null
+ },
+ {
+ "color": "purple",
+ "value": 0
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 5,
+ "w": 8,
+ "x": 16,
+ "y": 38
+ },
+ "id": 106,
+ "options": {
+ "displayMode": "gradient",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": ["lastNotNull"],
+ "fields": "",
+ "values": false
+ },
+ "showUnfilled": true
+ },
+ "pluginVersion": "7.3.5",
+ "targets": [
+ {
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"2.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "2xx",
+ "refId": "B"
+ },
+ {
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"3.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "3xx",
+ "refId": "C"
+ },
+ {
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"4.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "4xx",
+ "refId": "D"
+ },
+ {
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\",status=~\"5.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "5xx",
+ "refId": "E"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Notification Response Codes",
+ "type": "bargauge"
+ },
+ {
+ "datasource": "Thanos",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {
+ "align": "left",
+ "filterable": false
+ },
+ "decimals": 0,
+ "displayName": "${__series.name}",
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "dark-blue",
+ "value": null
+ },
+ {
+ "color": "blue",
+ "value": 0
+ }
+ ]
+ }
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "method"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 121
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Time"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 166
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 9,
+ "w": 12,
+ "x": 0,
+ "y": 43
+ },
+ "id": 86,
+ "options": {
+ "displayMode": "gradient",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": ["mean"],
+ "fields": "",
+ "values": false
+ },
+ "showUnfilled": true
+ },
+ "pluginVersion": "7.3.5",
+ "targets": [
+ {
+ "expr": "topk(10, sort_desc(sum by (svc,path,method)((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range))))\r",
+ "format": "time_series",
+ "instant": true,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{method}} {{path}}",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Top 10 Requests",
+ "type": "bargauge"
+ },
+ {
+ "datasource": "Thanos",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {
+ "align": "left",
+ "filterable": false
+ },
+ "decimals": 0,
+ "displayName": "${__series.name}",
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "dark-purple",
+ "value": null
+ },
+ {
+ "color": "purple",
+ "value": 0
+ }
+ ]
+ }
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "method"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 121
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Time"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 166
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 9,
+ "w": 12,
+ "x": 12,
+ "y": 43
+ },
+ "id": 97,
+ "options": {
+ "displayMode": "gradient",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": ["mean"],
+ "fields": "",
+ "values": false
+ },
+ "showUnfilled": true
+ },
+ "pluginVersion": "7.3.5",
+ "targets": [
+ {
+ "expr": "topk(10, sort_desc(sum by (svc,notif)((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec028\"} offset $__range))))",
+ "format": "time_series",
+ "instant": true,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{svc}} | {{notif}}",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Top 10 Notifications",
+ "type": "bargauge"
+ }
+ ],
+ "title": "MEC028 - WAI Service",
+ "type": "row"
+ },
+ {
+ "collapsed": true,
+ "datasource": null,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 37
+ },
+ "id": 128,
+ "panels": [
+ {
+ "datasource": null,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 1,
+ "w": 12,
+ "x": 0,
+ "y": 38
+ },
+ "id": 129,
+ "options": {
+ "content": "",
+ "mode": "markdown"
+ },
+ "pluginVersion": "7.3.5",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Requests",
+ "type": "text"
+ },
+ {
+ "datasource": null,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 1,
+ "w": 12,
+ "x": 12,
+ "y": 38
+ },
+ "id": 135,
+ "options": {
+ "content": "",
+ "mode": "markdown"
+ },
+ "pluginVersion": "7.3.5",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Notifications",
+ "type": "text"
+ },
+ {
+ "datasource": "Thanos",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "decimals": 0,
+ "mappings": [],
+ "noValue": "0",
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "blue",
+ "value": null
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 5,
+ "w": 4,
+ "x": 0,
+ "y": 39
+ },
+ "id": 130,
+ "options": {
+ "colorMode": "value",
+ "graphMode": "area",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": ["lastNotNull"],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "value"
+ },
+ "pluginVersion": "7.3.5",
+ "targets": [
+ {
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Total Requests",
+ "type": "stat"
+ },
+ {
+ "datasource": "Thanos",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "decimals": 0,
+ "mappings": [],
+ "noValue": "0",
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "dark-blue",
+ "value": null
+ },
+ {
+ "color": "blue",
+ "value": 0
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 5,
+ "w": 8,
+ "x": 4,
+ "y": 39
+ },
+ "id": 131,
+ "options": {
+ "displayMode": "gradient",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": ["lastNotNull"],
+ "fields": "",
+ "values": false
+ },
+ "showUnfilled": true
+ },
+ "pluginVersion": "7.3.5",
+ "targets": [
+ {
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "2xx",
+ "refId": "B"
+ },
+ {
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "3xx",
+ "refId": "C"
+ },
+ {
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "4xx",
+ "refId": "D"
+ },
+ {
+ "expr": "sum((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "5xx",
+ "refId": "E"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Request Response Codes",
+ "type": "bargauge"
+ },
+ {
+ "datasource": "Thanos",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "decimals": 0,
+ "mappings": [],
+ "noValue": "0",
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "purple",
+ "value": null
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 5,
+ "w": 4,
+ "x": 12,
+ "y": 39
+ },
+ "id": 133,
+ "options": {
+ "colorMode": "value",
+ "graphMode": "area",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": ["lastNotNull"],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "value"
+ },
+ "pluginVersion": "7.3.5",
+ "targets": [
+ {
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Total Notifications",
+ "type": "stat"
+ },
+ {
+ "datasource": "Thanos",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "decimals": 0,
+ "mappings": [],
+ "noValue": "0",
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "dark-purple",
+ "value": null
+ },
+ {
+ "color": "purple",
+ "value": 0
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 5,
+ "w": 8,
+ "x": 16,
+ "y": 39
+ },
+ "id": 134,
+ "options": {
+ "displayMode": "gradient",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": ["lastNotNull"],
+ "fields": "",
+ "values": false
+ },
+ "showUnfilled": true
+ },
+ "pluginVersion": "7.3.5",
+ "targets": [
+ {
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"2.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "2xx",
+ "refId": "B"
+ },
+ {
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"3.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "3xx",
+ "refId": "C"
+ },
+ {
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"4.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "4xx",
+ "refId": "D"
+ },
+ {
+ "expr": "sum((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\",status=~\"5.*\"} offset $__range)) or vector(0)",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "5xx",
+ "refId": "E"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Notification Response Codes",
+ "type": "bargauge"
+ },
+ {
+ "datasource": "Thanos",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {
+ "align": "left",
+ "filterable": false
+ },
+ "decimals": 0,
+ "displayName": "${__series.name}",
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "dark-blue",
+ "value": null
+ },
+ {
+ "color": "blue",
+ "value": 0
+ }
+ ]
+ }
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "method"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 121
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Time"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 166
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 9,
+ "w": 12,
+ "x": 0,
+ "y": 44
+ },
+ "id": 132,
+ "options": {
+ "displayMode": "gradient",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": ["mean"],
+ "fields": "",
+ "values": false
+ },
+ "showUnfilled": true
+ },
+ "pluginVersion": "7.3.5",
+ "targets": [
+ {
+ "expr": "topk(10, sort_desc(sum by (svc,path,method)((max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) - metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range) or (max_over_time(metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) unless metrics_http_request_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range))))\r",
+ "format": "time_series",
+ "instant": true,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{method}} {{path}}",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Top 10 Requests",
+ "type": "bargauge"
+ },
+ {
+ "datasource": "Thanos",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {
+ "align": "left",
+ "filterable": false
+ },
+ "decimals": 0,
+ "displayName": "${__series.name}",
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "dark-purple",
+ "value": null
+ },
+ {
+ "color": "purple",
+ "value": 0
+ }
+ ]
+ }
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "method"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 121
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Time"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 166
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 9,
+ "w": 12,
+ "x": 12,
+ "y": 44
+ },
+ "id": 136,
+ "options": {
+ "displayMode": "gradient",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": ["mean"],
+ "fields": "",
+ "values": false
+ },
+ "showUnfilled": true
+ },
+ "pluginVersion": "7.3.5",
+ "targets": [
+ {
+ "expr": "topk(10, sort_desc(sum by (svc,notif)((max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) - metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range) or (max_over_time(metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"}[$__range]) unless metrics_http_notification_duration_count{replica=~\"$replica\",svc=~\"$mec030\"} offset $__range))))",
+ "format": "time_series",
+ "instant": true,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{svc}} | {{notif}}",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Top 10 Notifications",
+ "type": "bargauge"
+ }
+ ],
+ "title": "MEC030 - V2X Information Service",
+ "type": "row"
+ }
+ ],
+ "refresh": "15s",
+ "schemaVersion": 26,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "allValue": null,
+ "current": {
+ "selected": true,
+ "text": ["All"],
+ "value": ["$__all"]
+ },
+ "datasource": "Thanos",
+ "definition": "label_values(metrics_http_request_duration_count, replica) ",
+ "error": null,
+ "hide": 0,
+ "includeAll": true,
+ "label": "Instance",
+ "multi": true,
+ "name": "replica",
+ "options": [],
+ "query": "label_values(metrics_http_request_duration_count, replica) ",
+ "refresh": 2,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 2,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {
+ "selected": false,
+ "text": "App Enablement Service",
+ "value": "App Enablement Service"
},
"error": null,
"hide": 2,
@@ -4248,6 +5144,54 @@
"skipUrlSync": false,
"type": "custom"
},
+ {
+ "allValue": null,
+ "current": {
+ "selected": false,
+ "text": "Traffic Management Service",
+ "value": "Traffic Management Service"
+ },
+ "error": null,
+ "hide": 2,
+ "includeAll": false,
+ "label": null,
+ "multi": false,
+ "name": "mec015",
+ "options": [
+ {
+ "selected": true,
+ "text": "Traffic Management Service",
+ "value": "Traffic Management Service"
+ }
+ ],
+ "query": "Traffic Management Service",
+ "skipUrlSync": false,
+ "type": "custom"
+ },
+ {
+ "allValue": null,
+ "current": {
+ "selected": false,
+ "text": "DAI Service",
+ "value": "DAI Service"
+ },
+ "error": null,
+ "hide": 2,
+ "includeAll": false,
+ "label": null,
+ "multi": false,
+ "name": "mec016",
+ "options": [
+ {
+ "selected": true,
+ "text": "DAI Service",
+ "value": "DAI Service"
+ }
+ ],
+ "query": "DAI Service",
+ "skipUrlSync": false,
+ "type": "custom"
+ },
{
"allValue": null,
"current": {
diff --git a/config/objstore-thanos-archive.yaml b/config/objstore-thanos-archive.yaml
index 761eab28632d69781ef6dd3d4a2e4a6cad11f0ae..297e5e078343996e99c86fb01655e6f040d2d49d 100644
--- a/config/objstore-thanos-archive.yaml
+++ b/config/objstore-thanos-archive.yaml
@@ -10,3 +10,4 @@ config:
idle_conn_timeout: 1m30s
response_header_timeout: 2m
insecure_skip_verify: false
+
diff --git a/config/permissions.yaml b/config/permissions.yaml
index e57847905b5d56efdf49e18b81328f6f060ab41c..2258c6c5f9c09e11461a607665e7134454b21fc8 100644
--- a/config/permissions.yaml
+++ b/config/permissions.yaml
@@ -900,6 +900,32 @@ services:
method: 'GET'
mode: 'block'
#------------------------------
+ # DAI (Sbox)
+ #------------------------------
+ - name: 'meep-dai'
+ path: '/dev_app/v1'
+ sbox: true
+ default:
+ mode: 'allow'
+ fileservers:
+ - name: 'Api'
+ path: '/api'
+ mode: 'verify'
+ roles:
+ admin: 'allow'
+ user: 'block'
+ - name: 'UserApi'
+ path: '/user-api'
+ mode: 'verify'
+ roles:
+ admin: 'allow'
+ user: 'allow'
+ endpoints:
+ - name: 'Index'
+ path: '/'
+ method: 'GET'
+ mode: 'block'
+ #------------------------------
# V2XI Service (Sbox)
#------------------------------
- name: 'meep-vis'
@@ -925,3 +951,57 @@ services:
path: '/'
method: 'GET'
mode: 'block'
+ #------------------------------
+ # Bandwidth Management Service (Sbox)
+ #------------------------------
+ - name: 'meep-tm'
+ api: 'bwm'
+ path: '/bwm/v1'
+ sbox: true
+ default:
+ mode: 'allow'
+ fileservers:
+ - name: 'Api'
+ path: '/api'
+ mode: 'verify'
+ roles:
+ admin: 'allow'
+ user: 'block'
+ - name: 'UserApi'
+ path: '/user-api'
+ mode: 'verify'
+ roles:
+ admin: 'allow'
+ user: 'allow'
+ endpoints:
+ - name: 'Index'
+ path: '/'
+ method: 'GET'
+ mode: 'block'
+ #------------------------------
+ # Multi-access Traffic Steering Service (Sbox)
+ #------------------------------
+ - name: 'meep-tm'
+ api: 'mts'
+ path: '/mts/v1'
+ sbox: true
+ default:
+ mode: 'allow'
+ fileservers:
+ - name: 'Api'
+ path: '/api'
+ mode: 'verify'
+ roles:
+ admin: 'allow'
+ user: 'block'
+ - name: 'UserApi'
+ path: '/user-api'
+ mode: 'verify'
+ roles:
+ admin: 'allow'
+ user: 'allow'
+ endpoints:
+ - name: 'Index'
+ path: '/'
+ method: 'GET'
+ mode: 'block'
diff --git a/deploy.sh b/deploy.sh
index 0fe2a35ecc0897ab2006efd41321a5523daa2658..f8a873bbeff1d5f3767c8e22c3255cce35af8f0e 100755
--- a/deploy.sh
+++ b/deploy.sh
@@ -63,5 +63,13 @@ mkdir -p $VALUESDIR-bak
cp -r $VALUESDIR/* $VALUESDIR-bak
cp -r config/values/* $VALUESDIR
+echo ""
+echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
+echo ">> Updating demo4-UE entrypoint.sh script"
+echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
+echo ""
+
+sed --in-place 's/advantedge/sandbox/' $MEEPDIR/examples/demo4-ue/src/demo-server/entrypoint.sh
+
echo ""
echo ">>> MEC Sandbox deployment completed"
diff --git a/js-apps/frontend/src/js/app-constants.js b/js-apps/frontend/src/js/app-constants.js
index b730716dbe52d2564103988705a0c79a5cec448a..c935e14ec2e6b26cf387cb8b0397d5eccdd9de30 100644
--- a/js-apps/frontend/src/js/app-constants.js
+++ b/js-apps/frontend/src/js/app-constants.js
@@ -3,7 +3,7 @@
*/
// Version
-export const MEC_SANDBOX_VERSION = 'v1.7';
+export const MEC_SANDBOX_VERSION = 'v1.8';
// Host
export const HOST_PATH = location.origin;
diff --git a/js-apps/frontend/src/js/components/dialogs/detailed-data-dialog.js b/js-apps/frontend/src/js/components/dialogs/detailed-data-dialog.js
index 826175baca26866deef0ec92ff46dcf8a3b43a80..a99af075d64b46b3ee9dabf6dd593d3c67c9d270 100644
--- a/js-apps/frontend/src/js/components/dialogs/detailed-data-dialog.js
+++ b/js-apps/frontend/src/js/components/dialogs/detailed-data-dialog.js
@@ -78,7 +78,7 @@ class DetailedDataDialog extends Component {
mapService(loggerName) {
//loggerName is a combination of loggerName and mep name
- let prefixes = ['meep-loc-serv', 'meep-rnis', 'meep-wais', 'meep-app-enablement', 'meep-ams', 'meep-vis'];
+ let prefixes = ['meep-loc-serv', 'meep-rnis', 'meep-dai', 'meep-wais', 'meep-app-enablement', 'meep-ams', 'meep-vis', 'meep-tm'];
let prefixStd = '';
var prefix = '';
for (var i = 0; i < prefixes.length; i++) {
@@ -104,6 +104,12 @@ class DetailedDataDialog extends Component {
case 'meep-ams':
prefixStd = '021';
break;
+ case 'meep-tm':
+ prefixStd = '015';
+ break;
+ case 'meep-dai':
+ prefixStd = '016';
+ break;
case 'meep-vis':
prefixStd = '030';
break;
diff --git a/js-apps/frontend/src/js/components/dialogs/version-dialog.js b/js-apps/frontend/src/js/components/dialogs/version-dialog.js
index 05336e95de56826bd606beea7009a791e25fbedb..dd3bb07bd06157f5e8afe6e9b383788e6c66c0a9 100644
--- a/js-apps/frontend/src/js/components/dialogs/version-dialog.js
+++ b/js-apps/frontend/src/js/components/dialogs/version-dialog.js
@@ -22,6 +22,16 @@ class VersionDialog extends Component {
>
v1.8 • 2022-09-29
v1.7 • 2022-06-20