# 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: mariadb-scenario
  segmentSize: ge 1
  segments:
  - segmentId: not null
    spans:
    - operationName: Mariadb/JDBI/Statement/execute
      operationId: eq 0
      parentSpanId: 0
      spanId: 1
      spanLayer: Database
      startTime: nq 0
      endTime: nq 0
      componentId: 87
      isError: false
      spanType: Exit
      peer: mariadb-server:3306
      skipAnalysis: 'false'
      tags:
      - {key: db.type, value: sql}
      - {key: db.instance, value: test}
      - key: db.statement
        value: "CREATE TABLE test_table(\nid VARCHAR(1) PRIMARY KEY, \nvalue VARCHAR(10)\
          \ NOT NULL)"
    - operationName: Mariadb/JDBI/PreparedStatement/execute
      operationId: eq 0
      parentSpanId: 0
      spanId: 2
      spanLayer: Database
      startTime: nq 0
      endTime: nq 0
      componentId: 87
      isError: false
      spanType: Exit
      peer: mariadb-server:3306
      skipAnalysis: 'false'
      tags:
      - {key: db.type, value: sql}
      - {key: db.instance, value: test}
      - {key: db.statement, value: "INSERT INTO test_table(id, value) VALUES(?,?)"}
    - operationName: Mariadb/JDBI/PreparedStatement/execute
      operationId: eq 0
      parentSpanId: 0
      spanId: 3
      spanLayer: Database
      startTime: nq 0
      endTime: nq 0
      componentId: 87
      isError: false
      spanType: Exit
      peer: mariadb-server:3306
      skipAnalysis: 'false'
      tags:
      - {key: db.type, value: sql}
      - {key: db.instance, value: test}
      - {key: db.statement, value: "SELECT id, value FROM test_table WHERE id = ?"}
    - operationName: Mariadb/JDBI/Statement/execute
      operationId: eq 0
      parentSpanId: 0
      spanId: 4
      spanLayer: Database
      startTime: nq 0
      endTime: nq 0
      componentId: 87
      isError: false
      spanType: Exit
      peer: mariadb-server:3306
      skipAnalysis: 'false'
      tags:
      - {key: db.type, value: sql}
      - {key: db.instance, value: test}
      - {key: db.statement, value: "DROP table test_table"}
    - operationName: Mariadb/JDBI/Connection/close
      operationId: eq 0
      parentSpanId: 0
      spanId: 5
      spanLayer: Database
      startTime: nq 0
      endTime: nq 0
      componentId: 87
      isError: false
      spanType: Exit
      peer: mariadb-server:3306
      skipAnalysis: 'false'
      tags:
      - {key: db.type, value: sql}
      - {key: db.instance, value: test}
      - {key: db.statement, value: ''}
    - operationName: /mariadb-scenario/case/mariadb-scenario
      operationId: eq 0
      parentSpanId: -1
      spanId: 0
      startTime: nq 0
      endTime: nq 0
      spanLayer: Http
      isError: false
      spanType: Entry
      peer: ''
      componentId: 1
      tags:
      - {key: url, value: 'http://localhost:8080/mariadb-scenario/case/mariadb-scenario'}
      - {key: http.method, value: GET}
      logs: []
      skipAnalysis: 'false'
