public synchronized Sensor sensor(String name, MetricConfig config, long inactiveSensorExpirationTimeSeconds, Sensor.RecordingLevel recordingLevel, Sensor... parents) {
        Sensor s = getSensor(name);
        if (s == null) {
            s = new Sensor(this, name, parents, config == null ? this.config : config, time, inactiveSensorExpirationTimeSeconds, recordingLevel);
            this.sensors.put(name, s);
            if (parents != null) {
                for (Sensor parent : parents) {
                    List<Sensor> children = childrenSensors.computeIfAbsent(parent, k -> new ArrayList<>());
                    children.add(s);
                }
            }
            log.trace("Added sensor with name {}", name);
        }
        return s;
    }
Get or create a sensor with the given unique name and zero or more parent sensors. All parent sensors will
receive every value recorded with this sensor.
@param name The name of the sensor
@param config A default configuration to use for this sensor for metrics that don't have their own config
@param inactiveSensorExpirationTimeSeconds If no value is recorded on the Sensor for this duration of time,
                                       it is eligible for removal
@param parents The parent sensors
@param recordingLevel The recording level.
@return The sensor that is created
clients/src/main/java/org/apache/kafka/common/metrics/Metrics.java