클래스: Mongo::모니터링

상속:
객체
  • 객체
모두 표시
다음을 포함합니다.
ID, 구독 가능
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/monitoring.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/publishable.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/secure.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/base.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/cmap_log_subscriber.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/server_closed.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/sdam_log_subscriber.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/command_failed.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/server_opening.rb,
build/ Ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/pool_ready.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/command_started.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/topology_closed.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/command_log_subscriber.rb,
build/ Ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/pool_closed.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/topology_changed.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/topology_opening.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/cmap/pool_cleared.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/cmap/pool_created.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/command_succeeded.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/cmap/connection_ready.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/unified_s담_log_subscriber.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/cmap/connection_closed.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/server_closed_log_subscriber.rb,
build/ Ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/connection_created.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/server_heartbeat_failed.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/server_opening_log_subscriber.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/server_heartbeat_started.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/topology_closed_log_subscriber.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/topology_changed_log_subscriber.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/topology_opening_log_subscriber.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/cmap/connection_checked_in.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/server_description_changed.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/server_heartbeat_succeeded.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/cmap/connection_checked_out.rb,
build/ Ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/connection_check_out_failed.rb,
빌드/루비 드라이버-v2.19/lib/mongo/monitoring/event/cmap/connection_check_out_started.rb,
build/ Ruby-driver-v2.19/lib/mongo/monitoring/server_description_changed_log_subscriber.rb

개요

이 클래스는 성능 모니터링 API의 동작을 정의합니다.

이후:

  • 2.1.0

네임스페이스 아래에 정의됨

모듈: 이벤트, 글로벌, 게시 가능 , 구독 가능 클래스: CmapLogSubscriber, CommandLogSubscriber, SDAMLogSubscriber, ServerClosedLogSubscriber, ServerDescriptionChangedLogSubscriber, ServerOpeningLogSubscriber, TopologyChangedLogSubscriber , TopologyClosedLogSubscriber, TopologyOpeningLogS

상수 요약 접기

명령 =

명령 주제입니다.

이후:

  • 2.1.0

'명령'.동결
CONNECTION_POOL =

연결 풀 주제입니다.

이후:

  • 2.9.0

'ConnectionPool'.동결
SERVER_CLOSED =

서버 종료 주제.

이후:

  • 2.4.0

'ServerClosed'.동결
SERVER_DESCRIPTION_CHANGED =

MongoDB Server 설명 주제가 변경되었습니다.

이후:

  • 2.4.0

'ServerDescriptionChanged'.동결
SERVER_OPENING =

MongoDB Server 열기 주제입니다.

이후:

  • 2.4.0

'ServerOpening'.동결
TOPOLOGY_CHANGED =

토폴로지가 주제 를 변경했습니다.

이후:

  • 2.4.0

'TopologyChanged'.동결
TOPOLOGY_CLOSED =

토폴로지 닫힌 주제.

이후:

  • 2.4.0

'TopologyClosed'.동결
TOPOLOGY_OPENING =

토폴로지 열기 주제.

이후:

  • 2.4.0

'TopologyOpening'.동결
SERVER_HEARTBEAT =

서버 하트비트 시작 주제.

이후:

  • 2.7.0

'ServerHeartbeat'.동결

인스턴스 속성 요약 접기

클래스 메서드 요약 접기

인스턴스 메서드 요약 접기

구독가능에 포함된 메서드

#subscribe, #subscribers, #subscribers?, #unsubscribe

ID에 포함된 메서드

포함

생성자 세부 정보

#initialize(options = {}) ⇒ 모니터링

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

모니터링 을 초기화합니다.

예시:

새 모니터링을 만듭니다.

Monitoring.new(:monitoring => true)

매개변수:

  • 옵션 (해시) (기본값: {})

    옵션. 클라이언트 생성자는 옵션을 모니터링 생성자에 전달하지만 모니터링은 클라이언트가 인식하는 옵션의 하위 집합만 인식합니다.

옵션 해시(options):

  • :monitoring (true, false)

    false를 지정하면 모니터링 인스턴스가 글로벌 모니터링 이벤트 구독자 없이 초기화되며 SDAM 이벤트를 게시하지 않습니다. 명령 모니터링 이벤트는 계속 게시되며 드라이버는 서버 선택을 수행하기 위해 여전히 SDAM을 수행하고 해당 클러스터를 모니터링합니다. SDAM 이벤트의 기본 제공 드라이버 로깅은 SDAM 이벤트 구독을 통해 구현되므로 비활성화됩니다. Client#subscribe는 모든 이벤트 유형에 대해 성공하지만 SDAM 이벤트의 구독자는 호출되지 않습니다. false 이외의 값은 정상적인 SDAM 이벤트 게시를 수행하는 기본 동작을 초래합니다.

이후:

  • 2.1.0



220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
# 파일 'build/ Ruby-driver-v2.19/lib/mongo/monitoring.rb', 줄 220

def 초기화(옵션 = {})
  @options = 옵션
  만약 옵션[:monitoring] != 거짓
    글로벌.구독자. do |주제, 구독자|
      구독자. do |구독자|
        구독(주제, 구독자)
      end
    end
    구독(명령, CommandLogSubscriber.신규(옵션))
    # CMAP 이벤트는 다음을 생성하므로 기본값 기록되지 않습니다.
    # 운전자 가 수행한 모든 작업에 대한 로그 항목.
    # 구독(CONNECTION_POOL, CmapLogSubscriber.new(options))
    구독(SERVER_OPENING, ServerOpeningLogSubscriber.신규(옵션))
    구독(SERVER_CLOSED, ServerClosedLogSubscriber.신규(옵션))
    구독(SERVER_DESCRIPTION_CHANGED, ServerDescriptionChangedLogSubscriber.신규(옵션))
    구독(TOPOLOGY_OPENING, 토폴로지OpeningLogSubscriber.신규(옵션))
    구독(TOPOLOGY_CHANGED, 토폴로지 변경 로그 구독자.신규(옵션))
    구독(TOPOLOGY_CLOSED, 토폴로지ClosedLogSubscriber.신규(옵션))
  end
end

인스턴스 속성 세부 정보

#options객체 (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이후:

  • 2.1.0



242
243
244
# 파일 'build/ Ruby-driver-v2.19/lib/mongo/monitoring.rb', 줄 242

def 옵션
  @options
end

클래스 메서드 세부 정보

.Next_operation_id정수

이벤트를 함께 연결하기 위해 고유한 작업 ID를 생성하는 데 사용됩니다.

예시:

다음 작업 ID를 가져옵니다.

Monitoring.next_operation_id

반환합니다:

  • (정수)

    다음 작업 ID입니다.

이후:

  • 2.1.0



79
80
81
# 파일 'build/ Ruby-driver-v2.19/lib/mongo/monitoring.rb', 줄 79

def self.Next_operation_id
  self.Next_id
end

인스턴스 메서드 세부 정보

#실패(주제, 이벤트) ⇒ 객체

실패한 이벤트를 게시합니다.

이 메서드는 명령 및 하트비트 이벤트와 같이 시작/성공/실패 이벤트가 있는 이벤트 유형에 사용됩니다.

예시:

실패한 이벤트를 게시합니다.

monitoring.failed(COMMAND, event)

매개변수:

  • 주제 (string)

    이벤트 주제입니다.

  • 이벤트 (이벤트)

    게시할 이벤트 입니다.

이후:

  • 2.1.0



306
307
308
# 파일 'build/ Ruby-driver-v2.19/lib/mongo/monitoring.rb', 줄 306

def 실패하였습니다.(주제, 이벤트)
  subscribers_for(주제).{ |구독자| 구독자.실패하였습니다.(이벤트) }
end

#모니터링?부울

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

반환합니다:

  • (부울)

이후:

  • 2.1.0



245
246
247
# 파일 'build/ Ruby-driver-v2.19/lib/mongo/monitoring.rb', 줄 245

def 모니터링?
  옵션[:monitoring] != 거짓
end

#publish_heartbeat(서버, awaited: false) ⇒ Object

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이후:

  • 2.1.0



311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
# 파일 'build/ Ruby-driver-v2.19/lib/mongo/monitoring.rb', 줄 311

def publish_heartbeat(서버, awaited: 거짓)
  만약 모니터링?
    started_event = 이벤트::ServerHeartbeatStarted.신규(
      서버.주소, awaited: awaited)
    시작됨(SERVER_HEARTBEAT, started_event)
  end

  # 하트비트 성공/실패 이벤트에 게시하는 기간은 다음과 같습니다.
  # 전체 하트비트에 소요된 시간입니다. 여기에는 시간이 포함될 수 있습니다.
  # 시간뿐만 아니라 소켓(TLS 핸드셰이크 포함)을 연결합니다.
  # hello 호출 자체에 소비됩니다.
  # https://github.com/mongodb/specations/lob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring-monitoring.rst의 사양
  # 여기에 노출된 기간은 '다음을 전송하는
  # message" (hello). 이 요구 사항은 다음과 같은 경우에는 의미가 없습니다.
  # 예를 들어, 서버에 전혀 연결할 수 없었습니다.
  # 따라서 hello가 전송되지 않았습니다.
  start_time = Utils.단조적 시간

  시작
    결과 = yield
  구출 => exc
    만약 모니터링?
      이벤트 = 이벤트::ServerHeartbeatFailed.신규(
        서버.주소,
        Utils.단조적 시간 - start_time,
        exc,
        awaited: awaited,
        started_event: started_event,
      )
      실패하였습니다.(SERVER_HEARTBEAT, 이벤트)
    end
    올리다
  other
    만약 모니터링?
      이벤트 = 이벤트::ServerHeartbeatSucceeded.신규(
        서버.주소,
        Utils.단조적 시간 - start_time,
        awaited: awaited,
        started_event: started_event,
      )
      성공(SERVER_HEARTBEAT, 이벤트)
    end
    결과
  end
end

#게시됨(주제, 이벤트) ⇒ 객체

이벤트를 게시합니다.

이 메서드는 이벤트가 하나뿐인 이벤트 유형에 사용됩니다.

매개변수:

  • 주제 (string)

    이벤트 주제입니다.

  • 이벤트 (이벤트)

    게시할 이벤트 입니다.

이후:

  • 2.9.0



258
259
260
# 파일 'build/ Ruby-driver-v2.19/lib/mongo/monitoring.rb', 줄 258

def 게시됨(주제, 이벤트)
  subscribers_for(주제).{ |구독자| 구독자.게시됨(이벤트) }
end

#started(topic, event) ⇒ Object

시작된 이벤트를 게시합니다.

이 메서드는 명령 및 하트비트 이벤트와 같이 시작/성공/실패 이벤트가 있는 이벤트 유형에 사용됩니다.

예시:

시작된 이벤트를 게시합니다.

monitoring.started(COMMAND, event)

매개변수:

  • 주제 (string)

    이벤트 주제입니다.

  • 이벤트 (이벤트)

    게시할 이벤트 입니다.

이후:

  • 2.1.0



274
275
276
# 파일 'build/ Ruby-driver-v2.19/lib/mongo/monitoring.rb', 줄 274

def 시작됨(주제, 이벤트)
  subscribers_for(주제).{ |구독자| 구독자.시작됨(이벤트) }
end

#성공(주제, 이벤트) ⇒ 객체

성공한 이벤트를 게시합니다.

이 메서드는 명령 및 하트비트 이벤트와 같이 시작/성공/실패 이벤트가 있는 이벤트 유형에 사용됩니다.

예시:

성공한 이벤트를 게시합니다.

monitoring.succeeded(COMMAND, event)

매개변수:

  • 주제 (string)

    이벤트 주제입니다.

  • 이벤트 (이벤트)

    게시할 이벤트 입니다.

이후:

  • 2.1.0



290
291
292
# 파일 'build/ Ruby-driver-v2.19/lib/mongo/monitoring.rb', 줄 290

def 성공(주제, 이벤트)
  subscribers_for(주제).{ |구독자| 구독자.성공(이벤트) }
end