# 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: skywalking-nginx
  segmentSize: ge 1
  segments:
  - segmentId: not null
    spans:
    - operationName: /info
      parentSpanId: 0
      spanId: 1
      spanLayer: Http
      startTime: gt 0
      endTime: gt 0
      componentId: 6000
      isError: false
      spanType: Exit
      peer: 'e2e-test-with-mock-collector:upstream_ip:port'
      skipAnalysis: false
      tags:
      - key: http.status
        value: '200'
    - operationName: /info
      parentSpanId: -1
      spanId: 0
      spanLayer: Http
      startTime: gt 0
      endTime: gt 0
      componentId: 6000
      isError: false
      spanType: Entry
      peer: ''
      skipAnalysis: false
      tags:
      - key: http.method
        value: POST
      - key: http.params
        value: 'http://nginx/info'
      - key: http.status
        value: '200'
- serviceName: e2e-service-provider
  segmentSize: ge 1
  segments:
  - segmentId: not nul
    spans:
    - operationName: POST:/info
      parentSpanId: -1
      spanId: 0
      spanLayer: Http
      startTime: gt 0
      endTime: gt 0
      componentId: 1
      isError: false
      spanType: Entry
      peer: ''
      skipAnalysis: false
      tags:
      - {key: url, value: 'http://provider:9090/info'}
      - {key: http.method, value: POST}
      refs:
      - parentEndpoint: /info
        networkAddress: 'e2e-test-with-mock-collector:upstream_ip:port'
        refType: CrossProcess
        parentSpanId: 1
        parentTraceSegmentId: not null
        parentServiceInstance: e2e
        parentService: skywalking-nginx
        traceId: 'skywalking-e2e-request-id'
