Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 512новых вакансий за сутки·54 396вакансий открыто сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 565
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 395 кандидатов открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python8 752
  • Облачные технологии6 631
  • QA вакансии2 183
  • Android1 322
  • Инженер данных860
  • Продакт-менеджер316

Разработка

  • iOS1 238
  • Backend вакансии1 196
  • AI вакансии549
  • Fullstack вакансии500
  • Frontend вакансии426
  • Mobile вакансии28

По стеку

  • Go5 209
  • Java3 131
  • Kotlin1 113
  • Node.js1 008
  • Rust833
  • .NET656
  • PHP322
  • C++270
  • C#207

DevOps и инфраструктура

  • Kubernetes3 882
  • Linux-инфраструктура2 817
  • DevOps вакансии2 655
  • Terraform / IaC2 191
  • Мониторинг и Observability1 071
  • CI/CD919
  • SRE308
  • Кибербезопасность38

Аналитика и данные

  • Аналитик данных522
  • Data Scientist435
  • Бизнес-аналитик397
  • Системный аналитик67

Другие направления

  • Проджект-менеджер109
  • UI/UX дизайн67
  • Ручное тестирование14

По регионам

  • Вакансии в США22 951
  • Вакансии в Европе10 259
  • Работа в России2 963
  • Вакансии в Канаде2 034

По формату

  • Удалённые вакансии39 691
  • Релокация в США22 951
  • Гибридная работа3 633
  • Офисная работа2 761

По уровню

  • Senior вакансии19 599
  • Middle вакансии11 130
  • Junior вакансии3 562

Сейчас нанимают

Все компании
  • Wise192 вакансии
  • Rakuten189 вакансий
  • ASML163 вакансии
  • Grab134 вакансии
  • Celonis42 вакансии
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace17 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме Spring BootВсе вопросы
Spring BootSeniorТеория

Как устроены Actuator metrics/tracing и как подключить OpenTelemetry?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Actuator предоставляет метрики через Micrometer (эндпоинт /actuator/prometheus) и трассировку через Micrometer Tracing. Для OpenTelemetry подключите micrometer-tracing-bridge-otel и настройте OTLP экспортёр.

Метрики: Micrometer + Prometheus

Добавьте зависимости в build.gradle:

implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.micrometer:micrometer-registry-prometheus'

Конфигурация в application.yml:

management:
  endpoints:
    web:
      exposure:
        include: health,info,metrics,prometheus
  metrics:
    tags:
      application: my-service
      environment: production
  endpoint:
    health:
      show-details: always

После старта GET /actuator/prometheus отдаёт метрики в формате Prometheus. Стандартные метрики включают JVM (heap, GC, threads), HTTP запросы (http.server.requests), пул соединений HikariCP, кэши.

Actuator metrics, tracing и интеграция с OpenTelemetry

Spring Boot Actuator предоставляет готовую инфраструктуру для метрик и трассировки. С версии 3.x метрики реализованы через Micrometer, трассировка — через Micrometer Tracing (обёртка над Brave/OpenTelemetry).

Кастомные метрики через MeterRegistry

@Service
public class OrderService {

    private final Counter ordersCreated;
    private final Timer orderProcessingTime;

    public OrderService(MeterRegistry registry) {
        this.ordersCreated = Counter.builder("orders.created")
            .description("Total orders created")
            .tag("type", "online")
            .register(registry);
        this.orderProcessingTime = Timer.builder("orders.processing.time")
            .description("Order processing duration")
            .register(registry);
    }

    public Order createOrder(OrderRequest req) {
        return orderProcessingTime.record(() -> {
            Order order = processOrder(req);
            ordersCreated.increment();
            return order;
        });
    }
}

Трассировка: Micrometer Tracing + OpenTelemetry

Зависимости для OpenTelemetry экспортёра в OTLP (OpenTelemetry Protocol):

implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.micrometer:micrometer-tracing-bridge-otel'
implementation 'io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter'
implementation 'io.opentelemetry:opentelemetry-exporter-otlp'

Конфигурация трассировки:

management:
  tracing:
    sampling:
      probability: 1.0   # 100% в dev, 0.1 в prod
  otlp:
    tracing:
      endpoint: http://otel-collector:4318/v1/traces

spring:
  application:
    name: order-service

Метрики через OTLP в OpenTelemetry Collector

Для отправки метрик в OTLP (вместо Prometheus scrape):

implementation 'io.micrometer:micrometer-registry-otlp'
management:
  otlp:
    metrics:
      export:
        url: http://otel-collector:4318/v1/metrics
        step: 30s

OpenTelemetry Collector конфигурация

receivers:
  otlp:
    protocols:
      http:
        endpoint: 0.0.0.0:4318

exporters:
  prometheus:
    endpoint: 0.0.0.0:8889
  jaeger:
    endpoint: jaeger:14250
    tls:
      insecure: true

service:
  pipelines:
    metrics:
      receivers: [otlp]
      exporters: [prometheus]
    traces:
      receivers: [otlp]
      exporters: [jaeger]

Добавление span-атрибутов вручную

@Service
public class PaymentService {

    private final Tracer tracer;

    public void processPayment(String orderId, BigDecimal amount) {
        Span span = tracer.nextSpan().name("payment.process").start();
        try (Tracer.SpanInScope ws = tracer.withSpan(span)) {
            span.tag("order.id", orderId);
            span.tag("payment.amount", amount.toString());
            // бизнес-логика
        } catch (Exception e) {
            span.error(e);
            throw e;
        } finally {
            span.end();
        }
    }
}

Подводные камни

  • Конфликт Brave и OTel бриджей — нельзя одновременно подключать micrometer-tracing-bridge-brave и micrometer-tracing-bridge-otel; выберите один.
  • sampling.probability=1.0 в prod — 100% sampling при высокой нагрузке создаёт огромный объём данных и деградирует производительность; используйте 0.01–0.1.
  • management.endpoints.web.exposure — по умолчанию открыт только health; забытый prometheus в include означает, что Prometheus не сможет скрейпить метрики.
  • Трассировка не пробрасывается через @Async без настройки TaskDecorator — context propagation обрывается на границе потоков.
  • Имена метрик: Micrometer конвертирует camelCase в kebab.case или нормализует для конкретного реестра; ожидаемое имя в Prometheus может отличаться от заданного в коде.
  • OTLP endpoint у разных инструментов: gRPC порт 4317, HTTP/protobuf порт 4318 — путаница частая причина потери данных.
  • Spring Boot 3.x и OTel автоконфигурация из opentelemetry-spring-boot-starter может конфликтовать с Micrometer Tracing автоконфигурацией — изучите, какие бины переопределяются.

Частые вопросы на собеседовании

  • Как реализовать health checks в Spring Boot Actuator?
  • Что делает аннотация @SpringBootApplication?
  • Что такое Spring Boot и чем он отличается от Spring Framework?
  • В каких backend-проектах Spring Boot является сильным выбором, а где лучше выбрать более простой или другой стек?

Типичные ошибки

  • Отвечать определением без production-сценария.
  • Не называть runtime boundary, security boundary или failure mode.
  • Игнорировать версию API, observability и тестовую проверку.

Что проверяет интервьюер

  • Объясняет механизм своими словами и без выдуманных API.
  • Называет реальные риски, диагностику и критерий корректности.
  • Связывает ответ с текущей документацией и миграционными ограничениями.

Как вы знаете этот вопрос?

Проверить себя по теме Spring Boot →

Источники

  • https://docs.spring.io/spring-boot/reference/web/reactive.html
←Предыдущий вопросВ чём разница между `@Component`, `@Service`, `@Repository` и `@Controller`?

Связанные темы

Spring Bootrisk-analysisspring-boot-productiontechnical-depth

Вакансии с этим навыком

  • Backend-разработчик (Java/Kotlin)
  • IT Specialists: Cybersecurity, CPO, Java Backend Developer
  • Senior Software Engineer
  • Senior Java-разработчик
  • Ведущий Java-разработчик МСБ