code: func (p *serviceEvaluator) Usage(item runtime.Object) (corev1.ResourceList, error) {
  	result := corev1.ResourceList{}
  	svc, err := toExternalServiceOrError(item)
  	if err != nil {
  		return result, err
  	}
  	ports := len(svc.Spec.Ports)
  	// default service usage
  	result[serviceObjectCountName] = *(resource.NewQuantity(1, resource.DecimalSI))
  	result[corev1.ResourceServices] = *(resource.NewQuantity(1, resource.DecimalSI))
  	result[corev1.ResourceServicesLoadBalancers] = resource.Quantity{Format: resource.DecimalSI}
  	result[corev1.ResourceServicesNodePorts] = resource.Quantity{Format: resource.DecimalSI}
  	switch svc.Spec.Type {
  	case corev1.ServiceTypeNodePort:
  		// node port services need to count node ports
  		value := resource.NewQuantity(int64(ports), resource.DecimalSI)
  		result[corev1.ResourceServicesNodePorts] = *value
  	case corev1.ServiceTypeLoadBalancer:
  		// load balancer services need to count node ports and load balancers
  		value := resource.NewQuantity(int64(ports), resource.DecimalSI)
  		result[corev1.ResourceServicesNodePorts] = *value
  		result[corev1.ResourceServicesLoadBalancers] = *(resource.NewQuantity(1, resource.DecimalSI))
  	}
  	return result, nil
  }
docs: // Usage knows how to measure usage associated with services