Z ludźmi będziemy dalej pracować.
Artem Ilchenko
Oferta, która wygrała- Zlecenia 9
- Ocena -
- Ranking 565
Budżet: 5000 UAH Termin: 7 dni
Gotowy do pomocy, rozegram Grafana, ustawię metryk wycofania i wysyłam powiadomienia.
Aktualnie brak ofert
Oferty ukryte
Oferty ukryte
-
Artem Ilchenko 5 maja 2019Думаю что стоит взять какое-то готовое решение, типа https://medium.com/southbridge/prometheus-monitoring-ba8fbda6e83
-
Ilya Kapustin
5 maja 2019
Да, у нас есть мониторинг Zabbix. Он покрывает только нужны мониторинга железа, сервисов, портов и тд.
А как работают методы внутри - пока что не представляем как решить с помощью него. И, как уже думаю поняли, склоняемся к разработке собственного решения.
-
Artem Ilchenko 5 maja 2019Какой у вас стек технологий?
Prometheus позволяет мониторить различные метрики, думаю хорошо подходит для решения этой задачи. -
Ilya Kapustin
5 maja 2019
Вы серьёзно? С помощью него можно "замерить" сколько выполняются различные методы в коде? Если это действительно так, то это отлично, благодарю за совет.
Если нет, то внимательно прочитайте суть написанного в проекте. Тогда не будет вопросов "Какой стек технологий?"
-
Artem Ilchenko 5 maja 2019Это действительно так, он позволяет это сделать. А стек нужен для того чтобы люди понимали с чем им придется работать.
-
Ilya Kapustin
5 maja 2019
Работать со стеком не придется. Работать придется ТОЛЬКО с данными в базе. Больше ни с чем.
Погуглил, почитал про Prometheus. Возможно действительно его и можно адаптировать под наши нужны. Но нужны очень тонкая его настройка, не сразу понятно как это сделать, нужно разбираться, углубляться и тд. Возможно проще написать своё узкое решение.
Если у вас есть опыт его тонкой настройки, давайте обсудим.
-
Ilya Kapustin
5 maja 2019
Вопрос "про стек" лишь говорит о том, что вы начали обсуждение не особо вчитываясь в то, что написано в проекте.
-
Artem Ilchenko 5 maja 2019решение под ключ, в моем понимании, это выполнить задачу полностью, т.е. и залезть в приложение, и настроить мониторинг и визуализацию
-
Ilya Kapustin
5 maja 2019
Согласен с вами. Только при чем тут "стек"?
Давайте ближе к делу. Вам по силам настроить Prometheus в качестве мониторинга на временем выполнения отдельных методов? В свой код мы самостоятельно пропишем нужные вызовы, разумеется. Предпложительно, это будет "складываться" сначала в MySQL, а оттуда уже перегружаться, в тот же Prometheus например.
-
Artem Ilchenko 5 maja 2019В таком случае необходимость в использовании Prometheus отпадает, нужно просто визуализировать данные с помощью той же https://grafana.com/ например
-
Artem Ilchenko 5 maja 2019а если БД с метриками уже есть, нужно только данные визуализировать, то это же совсем другой разговор
-
Ilya Kapustin
5 maja 2019
Поэтому я вам и написал - читайте внимательнее. Всё описано ведь в деталях.
-
Ilya Kapustin
5 maja 2019
Артём, спрашу в 3 раз. У вас есть опыт работы со всем этим? Готовы за это взяться?
-
Artem Ilchenko 5 maja 2019Да, готов, конечно, я пытаюсь понять фронт работ и как будет проходить сотрудничество.
Как я понял, что нужно сделать:
- развернуть и настроить grafana, которая выведет все метрики и отправит алерты когда нужно
Верно? -
Ilya Kapustin
5 maja 2019
Да, как вариант сделать это нужно сначала для MySQL таблицы.
Посмотреть как всё это будет выглядеть вообще. Потом поднять ClickHouse (тут мы сами осилим, если у вас нет представления как это делать) и мигроровать на эту БД. Плагин для кликхаус у графаны есть, я уже посмотрел это
-
Vladimir Ost 5 maja 2019на каком языке это написано шо за СУБД?если на языке программирования написано это одно если на php или питоне то другое
-
Igor Lyalchenko 5 maja 2019При раскладе 1000 записей о событиях в секунду или более - настраиваемый или подстраеваемый Алерт не сработает быстро технически по причине того что ожидание самой записи в БД может дойти до минут на таких объемах. А их ещё считать потом..
Собственное решение не может идти в привязке к SQL в таком случае. Или другой универсальной среде. Лучше определить буфферы в памяти/диапазоны адресов в файле для записи о событиях и каждый микропроцесс пишет свои логи паралельно с другими микропроцессами но во избежание накладок только строго в свой участок. Тут в помощь ещё одна техника - циклические буфферы. Кто сталкивался например со звуком знает - доходит запись до конца выделенного блока и начинает писать в этот же блок сначала.
Мое субъективное мнение - SQL со своими десятками милисекунд последовательной записи (а она последовательна, вся параллельность ставится в очередь во избежания перезаписи поверх), 1000 запросов в секунду..
может ошибаюсь но думаю что используя промежуточные звенья вроде стандартизованных СУБД не прыгнете вы сильно высоко по скорости мониторинга. Минуты задержки при таких нагрузках - может быть. И это за счастье. Секунды - нет.
-
Igor Lyalchenko 5 maja 2019Ну и в свою очередь, если речь идёт о мониторинге с отставанием в минуты, привязываясь к SQL, то подойдёт любое решение. Вряд ли расстроит отставание (актуальность) данных о событии 5 минут, при этом те же 5 минут записи всех удовлетворят как за положеное. Дискриминация по функциональному признаку получается ))
-
Andrey Dsd 5 maja 2019может имеет смысл нагрузочное тестирование? пара тестировщиков в такой сложной системе найдут слабые места
-
Igor Lyalchenko 5 maja 2019А вот этот 100%. Согласен, Андрей.
Без предварительного убойного теста на отказ выполнение задачи будет грозить просто тратой времени двух сторон.
А именно когда исполнитель потратит время, а заказчик скажет - извини, но у нас сидит штат и курит мониторя 300 серверов потому что твое решение тормозит так что выспаться можно. Исполнитель же в свою очередь скажет - ребята, моя задача была отобразить данные - я отобразил в пределах способности их предоставить..
Aktualne zlecenia dla freelancerów w kategorii Bazy danych i SQL
Istnieje działająca platforma produkcyjna z katalogiem i automatycznym aktualizowaniem zewnętrznych ofert i cen. Stos technologiczny: — Node.js / TypeScript; — PostgreSQL; — istniejąca usługa odświeżania cen i cron; — oddzielny gotowy moduł walidacji i wyboru ofert w Pythonie; — staging i produkcja. Konieczne jest punktowe dopracowanie istniejącego pipeline'u odświeżania cen bez pełnego przepisywania backendu. OBOWIĄZKOWY ZAKRES 1. Integracja modułu Python — Moduł Python pozostaje oddzielnym komponentem; — zwraca zorganizowany wynik: oferty, wybrana oferta, statusy i flagi ryzyka; — Node.js waliduje wynik i wykonuje zapis w bazie danych; — przewidzieć obsługę błędów i częściowych/nieudanych uruchomień; — pipeline dziedziczony nie jest wyłączany do zakończenia QA. 2. Uruchomienie odświeżania według listy Dodaj uruchomienie: — po jednym slug/id; — po przekazanej liście slug/id. Możliwe CLI lub istniejące API serwisowe. Nowy interfejs użytkownika nie jest wymagany. 3. Tryb Shadow Nowe wyniki powinny być zapisywane oddzielnie i nie wpływać na produkcję do QA. Wymagane pola shadow: — cena; — ID wybranej oferty; — bezpośredni URL; — status oferty; — flagi ryzyka/QA; — checkedAt; — engineVersion. 4. Rozszerzenie istniejącej tabeli ofert Dodaj: — źródło; — external_offer_id; — last_seen_at; — last_checked_at; — engine_version; — flagi ryzyka lub przechowywanie w istniejącym JSON; — unikalne ograniczenie dla ochrony przed duplikatami. Nie jest wymagane tworzenie nowego równoległego systemu ofert, jeśli istniejącą tabelę można bezpiecznie rozszerzyć. 5. UPSERT, STALE i transakcja DB Zamień obecną schemę DELETE → CREATE: — UPSERT istniejących i nowych ofert; — oferty, które nie występują w pełnym udanym snapshot, są przekazywane do STALE; — w przypadku błędu API, częściowego wyniku lub niedokończonego snapshot aktywne oferty nie powinny stawać się STALE; — aktualizacja ofert, metadanych wybranej oferty i pól shadow według jednego modelu odbywa się w ramach jednej transakcji DB; — w przypadku błędu wykonywany jest pełny rollback. 6. Bezpieczne odświeżanie kanoniczne Odświeżanie cen nie powinno zmieniać: — marki; — referencji; — modelu; — kolekcji; — nazwy/tytułu; — slug; — opisów; — obrazów; — pól SEO. Aktualizowane są tylko oferta, cena i dane shadow. 7. Zachowanie obecnej logiki cron Zachować: — istniejący cron; — rolling batches; — cooldown; — sprawdzenie PRICE_REFRESH_MIN_DAYS przed wywołaniem zewnętrznego API; — dziedziczony pipeline produkcyjny do zakończenia Shadow QA. 8. Audyt wyników Wystarczy jedna opcja: — kolumna shadow w istniejącej tabeli administracyjnej; lub — eksport CSV. Minimalne dane: — model/referencja; — cena produkcyjna; — cena shadow; — delta; — URL produkcyjny/shadow; — status; — flagi ryzyka; — checkedAt; — engineVersion. Nowy skomplikowany dashboard nie jest wymagany. 9. Staging i QA — migracje DB; — wdrożenie staging; — test dymny na 5 przekazanych modelach; — następnie Tryb Shadow na około 50 modelach; — naprawa błędów technicznych wykrytych podczas tych uruchomień; — krótka dokumentacja kontraktu Python → Node.js i procedura rollback. OPCJONALNIE OCENIĆ ODDZIELNIE Prosta promocja techniczna bez nowego UI: — promocja jednego modelu po slug; — promocja listy slug; — przeniesienie potwierdzonych wartości shadow do produkcji; — techniczna weryfikacja po rollout. WYNIK — Pull Request; — migracje DB; — działająca integracja Python → Node.js; — Tryb Shadow; — UPSERT, STALE i transakcyjne aktualizacje; — uruchomienie po slug/id; — wdrożenie staging; — wyniki testu dymnego; — krótka dokumentacja; — nie mniej niż 7 dni na poprawki błędów w zrealizowanym zakresie po akceptacji. W ODPOWIEDZI WSKAZAĆ 1. Stała cena za obowiązkowy zakres. 2. Oddzielny koszt mechanizmu promocji. 3. Termin. 4. Ocena godzin. 5. Kiedy gotowi do rozpoczęcia. 6. Doświadczenie z transakcjami PostgreSQL, migracjami i pipeline'ami wczytywania. 7. Jakie pytania należy wyjaśnić przed rozpoczęciem. 8. Czy wliczone są staging, QA, migracje i okres naprawy błędów. Szablonowe odpowiedzi bez konkretnej oceny nie będą rozpatrywane. Dostęp do produkcji na pierwszym etapie nie jest udostępniany. Praca zaczyna się od ograniczonego przeglądu kodu i stagingu.
Potrzebna jest centralna serwerowa system zbierania i przechowywania danych z Planfix, 1C, Meta Ads i Google Ads, a także webowy dashboard do ich wyświetlania i analizy. Wszystkie dane, historia zmian, obliczenia i agregowane wskaźniki muszą być przechowywane wyłącznie w serwerowej bazie danych. Dashboard nie powinien przechowywać ani duplikować danych biznesowych. Ma on uzyskiwać niezbędne informacje z serwerowej bazy przez API zgodnie z zapytaniami użytkownika i wyświetlać je w postaci KPI, wykresów, tabel i szczegółowych raportów.
Szukamy wsparcia dla projektu opartego na Yii , trzeba wprowadzać poprawki i dopracowania bazy, częściowo jest kontakt z poprzednim wykonawcą .....................
Migracja bazy z jednego CRM do drugiego
Potrzebna jest migracja bazy z CRM G-PLUS do MyChatBot Objętość bazy - 26 tys. leadów 2 leje - Centrum obsługi klienta oraz Dział sprzedaży z własnymi lejkami Karty leadów (oprócz imienia i numeru) mają wiele różnych pól Leady mają również nagrania głosowe rozmów. Muszą być również przeniesione Od kandydata oczekuję orientacyjnej kwoty oraz terminów realizacji
Stworzyć dashboard do monitorowania i analizy efektywności sieci lokalizacji (filiów) firmy w Google Business Profile (GBP) poprzez oficjalne API Google Business Profile. Przetwarzanie przez skrypt oparty na Google Apps Script (podpiąć do Google Arkuszy). Zapis danych w Google Arkusze (które pełnią rolę bazy danych dla Looker Studio). Aktualizacja: Codziennie (z wskazaniem daty ostatniej aktualizacji). Stworzyć serwisowe konto Google Cloud. Skrypt raz na dobę (wyzwalacz o 03:00 w nocy) wysyła zapytanie do GBP API. Otrzymuje metryki za wczorajszy dzień dla każdej lokalizacji (locationId). Zapisuje dane w tabeli w płaskim formacie (wiersz = unikalne połączenie Data + ID Filia + Metryki). Karty kluczowych wskaźnikówNazwa kartyMetryka GBPFormat dynamikiWyświetlenia profiluImpressions (Search + Maps)Procent %, Sparkline (niebieski)PołączeniaLocal Services Phone CallsProcent %, Sparkline (zielony)Przejścia na stronęWebsite ClicksProcent %, Sparkline (fioletowy)Budowanie trasDirection RequestsProcent %, Sparkline (pomarańczowy)Średnia ocenaAverage Review RatingZmiana absolutna (np. +0.1), Sparkline (żółty)Nowe recenzjeNew Reviews CountProcent %, Sparkline (turkusowy)