#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

segmentItems:
  - serviceName: server
    segmentSize: 1
    segments:
      - segmentId: not null
        spans:
          - operationName: GET:/express
            operationId: 0
            parentSpanId: -1
            spanId: 0
            spanLayer: Http
            tags:
              - key: coldStart
                value: 'true'
              - key: http.url
                value: http://server:5000/express
              - key: http.method
                value: GET
              - key: http.status.code
                value: '200'
              - key: http.status.msg
                value: OK
            refs:
              - parentEndpoint: ''
                networkAddress: server:5000
                refType: CrossProcess
                parentSpanId: 1
                parentTraceSegmentId: not null
                parentServiceInstance: not null
                parentService: client
                traceId: not null
            startTime: gt 0
            endTime: gt 0
            componentId: 4002
            spanType: Entry
            peer: not null
            skipAnalysis: false
          - operationName: /json
            operationId: 0
            parentSpanId: 0
            spanId: 1
            spanLayer: Http
            startTime: gt 0
            endTime: gt 0
            componentId: 2
            spanType: Exit
            peer: httpbin.org
            skipAnalysis: false
            tags:
              - key: http.url
                value: http://httpbin.org/json
              - key: http.method
                value: GET
              - key: http.status.code
                value: '200'
              - key: http.status.msg
                value: OK
  - serviceName: client
    segmentSize: 1
    segments:
      - segmentId: not null
        spans:
          - operationName: GET:/test/express
            operationId: 0
            parentSpanId: -1
            spanId: 0
            spanLayer: Http
            tags:
              - key: coldStart
                value: 'true'
              - key: http.url
                value: http://localhost:5001/test/express
              - key: http.method
                value: GET
              - key: http.status.code
                value: '200'
              - key: http.status.msg
                value: OK
            startTime: gt 0
            endTime: gt 0
            componentId: 4002
            spanType: Entry
            peer: not null
            skipAnalysis: false
          - operationName: /express
            operationId: 0
            parentSpanId: 0
            spanId: 1
            spanLayer: Http
            tags:
              - key: http.url
                value: http://server:5000/express
              - key: http.method
                value: GET
              - key: http.status.code
                value: '200'
              - key: http.status.msg
                value: OK
            startTime: gt 0
            endTime: gt 0
            componentId: 2
            spanType: Exit
            peer: server:5000
            skipAnalysis: false
