code: func OperationCompleteHook(plugin, operationName string) func(*error) {
  	requestTime := time.Now()
  	opComplete := func(err *error) {
  		timeTaken := time.Since(requestTime).Seconds()
  		// Create metric with operation name and plugin name
  		status := statusSuccess
  		if *err != nil {
  			// TODO: Establish well-known error codes to be able to distinguish
  			// user configuration errors from system errors.
  			status = statusFailUnknown
  			storageOperationErrorMetric.WithLabelValues(plugin, operationName).Inc()
  		} else {
  			storageOperationMetric.WithLabelValues(plugin, operationName).Observe(timeTaken)
  		}
  		storageOperationStatusMetric.WithLabelValues(plugin, operationName, status).Inc()
  	}
  	return opComplete
  }
docs: // OperationCompleteHook returns a hook to call when an operation is completed