amarao (amarao_san) wrote,
amarao
amarao_san

плоды архитектуры в comfort zone

Внезапно обнаружилось, что у меня баг в ТЗ к скрипту - при аплоаде у нас event log общий, а у каждого сервера свой комплект данных. Надо обрабатывать event лог как общий, но данные по серверам обрабатывать раздельно...

Казалось, бы, ужас.

Но...

git diff -- files/upload_to_influx.py|egrep '(^[-\+].+)'|wc -l
12

(Это я продолжаю сам себя хвалить).
-def get_log_name(scenario, event_log_name, type):
+def get_log_name(server, scenario, event_log_name, type):
     dir = os.path.split(event_log_name)[0]
-    return os.path.join(dir, '%s_%s.log' % (scenario, type))
+    return os.path.join(dir, '%s/%s_%s.log' % (server, scenario, type))
 
 
 def process_logs(event_log, event_log_name):
@@ -117,21 +117,21 @@ def process_logs(event_log, event_log_name):
     for observer in get_observers(event_log):
         time_offset = get_observer_time_offset(observer, event_log)
         yield process_log(
-            get_log_name(scenario, event_log_name, 'lat'),
+            get_log_name(observer, scenario, event_log_name, 'lat'),
             'latency',
             observer,
             scenario,
             time_offset
         )
         yield process_log(
-            get_log_name(scenario, event_log_name, 'iops'),
+            get_log_name(observer, scenario, event_log_name, 'iops'),
             'iops',
             observer,
             scenario,
             time_offset
         )
         yield process_log(
-            get_log_name(scenario, event_log_name, 'bw'),
+            get_log_name(observer, scenario, event_log_name, 'bw'),

(без учёта изменения тестов, разумеется)

Сейчас есть ещё один толстый багофич ползёт, оказывается, в fio можно абсолютные timestamps записывать, плюс надо выравнивать данные по заданному start_time. Надеюсь, пара десяток строчек.
Subscribe

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments