Merge pull request #123795 from saschagrunert/metrics-remote-runtime
Decouple `kubelet/cri/remote` package from `kubelet/metrics`
This commit is contained in:
		| @@ -38,7 +38,6 @@ import ( | ||||
| 	runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1" | ||||
| 	"k8s.io/klog/v2" | ||||
| 	"k8s.io/kubernetes/pkg/features" | ||||
| 	"k8s.io/kubernetes/pkg/kubelet/metrics" | ||||
| 	"k8s.io/kubernetes/pkg/kubelet/util" | ||||
| 	"k8s.io/kubernetes/pkg/probe/exec" | ||||
|  | ||||
| @@ -808,15 +807,17 @@ func (r *remoteRuntimeService) CheckpointContainer(ctx context.Context, options | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (r *remoteRuntimeService) GetContainerEvents(containerEventsCh chan *runtimeapi.ContainerEventResponse) error { | ||||
| func (r *remoteRuntimeService) GetContainerEvents(containerEventsCh chan *runtimeapi.ContainerEventResponse, connectionEstablishedCallback func(runtimeapi.RuntimeService_GetContainerEventsClient)) error { | ||||
| 	containerEventsStreamingClient, err := r.runtimeClient.GetContainerEvents(context.Background(), &runtimeapi.GetEventsRequest{}) | ||||
| 	if err != nil { | ||||
| 		klog.ErrorS(err, "GetContainerEvents failed to get streaming client") | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	if connectionEstablishedCallback != nil { | ||||
| 		// The connection is successfully established and we have a streaming client ready for use. | ||||
| 	metrics.EventedPLEGConn.Inc() | ||||
| 		connectionEstablishedCallback(containerEventsStreamingClient) | ||||
| 	} | ||||
|  | ||||
| 	for { | ||||
| 		resp, err := containerEventsStreamingClient.Recv() | ||||
|   | ||||
| @@ -335,11 +335,11 @@ func (in instrumentedRuntimeService) CheckpointContainer(ctx context.Context, op | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| func (in instrumentedRuntimeService) GetContainerEvents(containerEventsCh chan *runtimeapi.ContainerEventResponse) error { | ||||
| func (in instrumentedRuntimeService) GetContainerEvents(containerEventsCh chan *runtimeapi.ContainerEventResponse, connectionEstablishedCallback func(runtimeapi.RuntimeService_GetContainerEventsClient)) error { | ||||
| 	const operation = "get_container_events" | ||||
| 	defer recordOperation(operation, time.Now()) | ||||
|  | ||||
| 	err := in.service.GetContainerEvents(containerEventsCh) | ||||
| 	err := in.service.GetContainerEvents(containerEventsCh, connectionEstablishedCallback) | ||||
| 	recordError(operation, err) | ||||
| 	return err | ||||
| } | ||||
|   | ||||
| @@ -192,7 +192,9 @@ func (e *EventedPLEG) watchEventsChannel() { | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			err := e.runtimeService.GetContainerEvents(containerEventsResponseCh) | ||||
| 			err := e.runtimeService.GetContainerEvents(containerEventsResponseCh, func(runtimeapi.RuntimeService_GetContainerEventsClient) { | ||||
| 				metrics.EventedPLEGConn.Inc() | ||||
| 			}) | ||||
| 			if err != nil { | ||||
| 				metrics.EventedPLEGConnErr.Inc() | ||||
| 				numAttempts++ | ||||
|   | ||||
| @@ -61,7 +61,7 @@ type ContainerManager interface { | ||||
| 	// CheckpointContainer checkpoints a container | ||||
| 	CheckpointContainer(ctx context.Context, options *runtimeapi.CheckpointContainerRequest) error | ||||
| 	// GetContainerEvents gets container events from the CRI runtime | ||||
| 	GetContainerEvents(containerEventsCh chan *runtimeapi.ContainerEventResponse) error | ||||
| 	GetContainerEvents(containerEventsCh chan *runtimeapi.ContainerEventResponse, connectionEstablishedCallback func(runtimeapi.RuntimeService_GetContainerEventsClient)) error | ||||
| } | ||||
|  | ||||
| // PodSandboxManager contains methods for operating on PodSandboxes. The methods | ||||
|   | ||||
| @@ -716,7 +716,7 @@ func (r *FakeRuntimeService) CheckpointContainer(_ context.Context, options *run | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (f *FakeRuntimeService) GetContainerEvents(containerEventsCh chan *runtimeapi.ContainerEventResponse) error { | ||||
| func (f *FakeRuntimeService) GetContainerEvents(containerEventsCh chan *runtimeapi.ContainerEventResponse, connectionEstablishedCallback func(runtimeapi.RuntimeService_GetContainerEventsClient)) error { | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Kubernetes Prow Robot
					Kubernetes Prow Robot