// Get current metrics
metrics, err := client.Telemetry.GetMetrics(ctx, &visent.MetricsRequest{
Node: "gpu-worker-1",
GPU: visent.Int(0),
})
if err != nil {
return fmt.Errorf("failed to get metrics: %w", err)
}
// Stream real-time metrics
stream, err := client.Telemetry.StreamMetrics(ctx, &visent.StreamRequest{
Nodes: []string{"gpu-worker-1", "gpu-worker-2"},
})
if err != nil {
return err
}
defer stream.Close()
for {
metric, err := stream.Recv()
if err != nil {
if err == io.EOF {
break
}
return err
}
fmt.Printf("Received metric: %+v\n", metric)
}
// Create alert
alert, err := client.Telemetry.CreateAlert(ctx, &visent.AlertRequest{
Name: "High GPU Temperature",
Condition: "gpu_temperature > 85",
Duration: "5m",
Severity: visent.SeverityCritical,
})