# 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: fiber
    segmentSize: ge 3
    segments:
      - segmentId: not null
        spans:
          - operationName: GET:/provider
            parentSpanId: -1
            spanId: 0
            spanLayer: Http
            startTime: nq 0
            endTime: nq 0
            componentId: 5021
            isError: false
            spanType: Entry
            peer: ''
            skipAnalysis: false
            tags:
              - {key: http.method, value: GET}
              - {key: url, value: 'localhost:8080/provider'}
              - {key: status_code, value: '200'}
            refs:
              - {parentEndpoint: 'GET:/consumer', networkAddress: 'localhost:8080', refType: CrossProcess,
                 parentSpanId: 1, parentTraceSegmentId: not null, parentServiceInstance: not null,
                 parentService: fiber, traceId: not null}
      - segmentId: not null
        spans:
          - operationName: GET:/provider
            parentSpanId: 0
            spanId: 1
            spanLayer: Http
            startTime: gt 0
            endTime: gt 0
            componentId: 5005
            isError: false
            spanType: Exit
            peer: localhost:8080
            skipAnalysis: false
            tags:
              - {key: http.method, value: GET}
              - {key: url, value: 'localhost:8080/provider'}
              - {key: status_code, value: '200'}
          - operationName: GET:/consumer
            parentSpanId: -1
            spanId: 0
            spanLayer: Http
            startTime: gt 0
            endTime: gt 0
            componentId: 5021
            isError: false
            spanType: Entry
            peer: ''
            skipAnalysis: false
            tags:
              - {key: http.method, value: GET}
              - {key: url, value: 'service:8080/consumer'}
              - {key: status_code, value: '200'}
meterItems: []
logItems: []
