MTTR (среднее время ремонта) и MTBF (среднее время между отказами) — это два важных показателя, используемые в проектировании надежности для оценки производительности и надежности систем или оборудования. MTTR измеряет среднее время, необходимое для ремонта вышедшей из строя системы или оборудования, а MTBF измеряет среднее время между двумя последовательными сбоями.
Вот несколько методов расчета MTTR и MTBF, а также примеры кода на Python:
Метод 1: расчет вручную
Чтобы рассчитать MTTR, вам необходимо записать время простоя для каждого события сбоя, а затем рассчитать среднее значение. Вот пример:
def calculate_mttr(downtimes):
    total_downtime = sum(downtimes)
    num_failures = len(downtimes)
    mttr = total_downtime / num_failures
    return mttr
downtimes = [4, 2, 3, 5, 2]  # Downtime in hours for each failure event
mttr = calculate_mttr(downtimes)
print(f"MTTR: {mttr} hours")
Чтобы рассчитать среднее время безотказной работы, вам необходимо записать время между каждым событием сбоя, а затем вычислить среднее значение. Вот пример:
def calculate_mtbf(time_between_failures):
    total_time_between_failures = sum(time_between_failures)
    num_failures = len(time_between_failures)
    mtbf = total_time_between_failures / num_failures
    return mtbf
time_between_failures = [100, 50, 70, 80, 60]  # Time between failures in hours
mtbf = calculate_mtbf(time_between_failures)
print(f"MTBF: {mtbf} hours")
Метод 2: использование Pandas
Если у вас есть набор данных с временными метками для событий сбоя, вы можете использовать библиотеку pandas для более эффективного расчета MTTR и MTBF. Вот пример:
import pandas as pd
def calculate_mttr(df):
    mttr = df['Downtime'].mean()
    return mttr
def calculate_mtbf(df):
    mtbf = df['Time Between Failures'].mean()
    return mtbf
# Create a DataFrame with failure data
data = {
    'Timestamp': ['2024-01-01 08:00:00', '2024-01-02 14:00:00', '2024-01-03 10:00:00'],
    'Downtime': [4, 2, 3],
    'Time Between Failures': [24, 36, 48]
}
df = pd.DataFrame(data)
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
mttr = calculate_mttr(df)
mtbf = calculate_mtbf(df)
print(f"MTTR: {mttr} hours")
print(f"MTBF: {mtbf} hours")