/**
 * 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.
 */
export interface LogTestOptions {
  service: string;
  serviceInstance: string;
  endpoint: string;
  timestamp: number;
  body: LogDataBody;
  traceContext: TraceContext;
  tags: LogTags;
}

interface LogDataBody {
  type: string;
  content: string;
}

interface TraceContext {
  traceId: string;
  traceSegmentId: string;
  spanId: number;
}

interface LogTags {
  data: { key: string; value: string };
}
export interface LogTestMetrics {
  name: String;
  tags: { key: string; value: string };
  value: number;
  timestamp: number;
}
