节点在线、应用在线、配置在线使用令牌查询
大石头 authored at 2021-12-16 19:49:30
914.00 B
Stardust
package main

import (
	"fmt"
	"time"

	"github.com/NewLifeX/Stardust/SDK/Go/stardust"
)

func main() {
	// 创建追踪器
	tracer := stardust.NewTracer("http://localhost:6600", "MyGoApp", "MySecret")
	tracer.Start()
	defer tracer.Stop()

	fmt.Println("APM 追踪器已启动,开始模拟业务操作...")

	// 模拟业务操作
	for i := 0; i < 5; i++ {
		// 方式1:手动创建和结束
		span := tracer.NewSpan("业务操作", "")
		span.Tag = fmt.Sprintf("操作编号: %d", i+1)

		// 模拟业务处理
		time.Sleep(time.Millisecond * 100)

		span.Finish()

		// 方式2:使用 defer
		func() {
			span2 := tracer.NewSpan("数据库查询", "")
			span2.Tag = "SELECT * FROM users"
			defer span2.Finish()

			// 模拟数据库查询
			time.Sleep(time.Millisecond * 50)
		}()

		time.Sleep(time.Second)
	}

	fmt.Println("业务操作完成,等待数据上报...")
	time.Sleep(time.Second * 5)
}