@@ -20,6 +20,9 @@ import (
2020 "context"
2121 "time"
2222
23+ "go.opentelemetry.io/otel"
24+ "go.opentelemetry.io/otel/attribute"
25+ "go.opentelemetry.io/otel/trace"
2326 corev1 "k8s.io/api/core/v1"
2427 apierrors "k8s.io/apimachinery/pkg/api/errors"
2528 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -34,6 +37,7 @@ import (
3437 "sigs.k8s.io/controller-runtime/pkg/reconcile"
3538
3639 impdevv1alpha1 "github.com/syscode-labs/imp/api/v1alpha1"
40+ "github.com/syscode-labs/imp/internal/tracing"
3741)
3842
3943const (
@@ -58,14 +62,22 @@ type ImpVMReconciler struct {
5862// +kubebuilder:rbac:groups=imp.dev,resources=clusterimpconfigs,verbs=get;list;watch
5963// +kubebuilder:rbac:groups=core,resources=events,verbs=create;patch
6064
61- func (r * ImpVMReconciler ) Reconcile (ctx context.Context , req ctrl.Request ) (ctrl.Result , error ) {
65+ func (r * ImpVMReconciler ) Reconcile (ctx context.Context , req ctrl.Request ) (result ctrl.Result , err error ) {
6266 log := logf .FromContext (ctx )
6367
6468 vm := & impdevv1alpha1.ImpVM {}
6569 if err := r .Get (ctx , req .NamespacedName , vm ); err != nil {
6670 return ctrl.Result {}, client .IgnoreNotFound (err )
6771 }
6872
73+ ctx , span := otel .Tracer ("imp.operator" ).Start (ctx , "operator.impvm.reconcile" ,
74+ trace .WithAttributes (
75+ attribute .String ("vm.name" , req .Name ),
76+ attribute .String ("vm.namespace" , req .Namespace ),
77+ attribute .String ("vm.phase" , string (vm .Status .Phase )),
78+ ))
79+ defer func () { tracing .RecordError (span , err ); span .End () }()
80+
6981 // 1. Handle deletion
7082 if ! vm .DeletionTimestamp .IsZero () {
7183 return r .handleDeletion (ctx , vm )
@@ -103,6 +115,7 @@ func (r *ImpVMReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl
103115 // Assign to node
104116 specPatch := client .MergeFrom (vm .DeepCopy ())
105117 vm .Spec .NodeName = nodeName
118+ tracing .InjectToVM (ctx , vm , span )
106119 if err := r .Patch (ctx , vm , specPatch ); err != nil {
107120 return ctrl.Result {}, err
108121 }
0 commit comments