package com.atlassian.bitbucket.mesh.config;

import com.atlassian.bitbucket.mesh.annotation.ManagedByControlPlane;

public interface ProfilingConfig {

    /**
     * @return {@code true} if profiling is enabled
     */
    @ManagedByControlPlane
    boolean isEnabled();

    /**
     * @return the minimum frame time in milliseconds that a profiled frame needs to be to be included in profiling logs
     */
    @ManagedByControlPlane
    int getMinFrameTime();

    /**
     * @return the minimum trace time in milliseconds that a profiled trace needs to be to be included in profiling logs
     */
    @ManagedByControlPlane
    int getMinTraceTime();

    /**
     * @return the maximum length of a profiling frame in the profiling logs; longer frames will be abbreviated
     */
    @ManagedByControlPlane
    int getMaxFrameNameLength();
}
