Sophie

Sophie

distrib > Mageia > 7 > i586 > media > core-release > by-pkgid > bc55833f04f370ac3ed453ef5b0ad686 > files > 256

python2-gridfs-3.7.2-1.mga7.i586.rpm


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>monitoring – Tools for monitoring driver events. &#8212; PyMongo 3.7.2 documentation</title>
    <link rel="stylesheet" href="../../_static/pydoctheme.css" type="text/css" />
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
    <script type="text/javascript" src="../../_static/jquery.js"></script>
    <script type="text/javascript" src="../../_static/underscore.js"></script>
    <script type="text/javascript" src="../../_static/doctools.js"></script>
    <script type="text/javascript" src="../../_static/language_data.js"></script>
    
    <script type="text/javascript" src="../../_static/sidebar.js"></script>
    
    <link rel="index" title="Index" href="../../genindex.html" />
    <link rel="search" title="Search" href="../../search.html" />
    <link rel="next" title="operations – Operation class definitions" href="operations.html" />
    <link rel="prev" title="mongo_replica_set_client – Tools for connecting to a MongoDB replica set" href="mongo_replica_set_client.html" /> 
  </head><body>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="operations.html" title="operations – Operation class definitions"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="mongo_replica_set_client.html" title="mongo_replica_set_client – Tools for connecting to a MongoDB replica set"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../../index.html">PyMongo 3.7.2 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="../index.html" >API Documentation</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal notranslate"><span class="pre">pymongo</span></code> – Python driver for MongoDB</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="module-pymongo.monitoring">
<span id="monitoring-tools-for-monitoring-driver-events"></span><h1><code class="xref py py-mod docutils literal notranslate"><span class="pre">monitoring</span></code> – Tools for monitoring driver events.<a class="headerlink" href="#module-pymongo.monitoring" title="Permalink to this headline">¶</a></h1>
<p>Tools to monitor driver events.</p>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.1.</span></p>
</div>
<p>Use <a class="reference internal" href="#pymongo.monitoring.register" title="pymongo.monitoring.register"><code class="xref py py-func docutils literal notranslate"><span class="pre">register()</span></code></a> to register global listeners for specific events.
Listeners must inherit from one of the abstract classes below and implement
the correct functions for that class.</p>
<p>For example, a simple command logger might be implemented like this:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">logging</span>

<span class="kn">from</span> <span class="nn">pymongo</span> <span class="k">import</span> <span class="n">monitoring</span>

<span class="k">class</span> <span class="nc">CommandLogger</span><span class="p">(</span><span class="n">monitoring</span><span class="o">.</span><span class="n">CommandListener</span><span class="p">):</span>

    <span class="k">def</span> <span class="nf">started</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
        <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Command </span><span class="si">{0.command_name}</span><span class="s2"> with request id &quot;</span>
                     <span class="s2">&quot;</span><span class="si">{0.request_id}</span><span class="s2"> started on server &quot;</span>
                     <span class="s2">&quot;</span><span class="si">{0.connection_id}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">event</span><span class="p">))</span>

    <span class="k">def</span> <span class="nf">succeeded</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
        <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Command </span><span class="si">{0.command_name}</span><span class="s2"> with request id &quot;</span>
                     <span class="s2">&quot;</span><span class="si">{0.request_id}</span><span class="s2"> on server </span><span class="si">{0.connection_id}</span><span class="s2"> &quot;</span>
                     <span class="s2">&quot;succeeded in </span><span class="si">{0.duration_micros}</span><span class="s2"> &quot;</span>
                     <span class="s2">&quot;microseconds&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">event</span><span class="p">))</span>

    <span class="k">def</span> <span class="nf">failed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
        <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Command </span><span class="si">{0.command_name}</span><span class="s2"> with request id &quot;</span>
                     <span class="s2">&quot;</span><span class="si">{0.request_id}</span><span class="s2"> on server </span><span class="si">{0.connection_id}</span><span class="s2"> &quot;</span>
                     <span class="s2">&quot;failed in </span><span class="si">{0.duration_micros}</span><span class="s2"> &quot;</span>
                     <span class="s2">&quot;microseconds&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">event</span><span class="p">))</span>

<span class="n">monitoring</span><span class="o">.</span><span class="n">register</span><span class="p">(</span><span class="n">CommandLogger</span><span class="p">())</span>
</pre></div>
</div>
<p>Server discovery and monitoring events are also available. For example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">ServerLogger</span><span class="p">(</span><span class="n">monitoring</span><span class="o">.</span><span class="n">ServerListener</span><span class="p">):</span>

    <span class="k">def</span> <span class="nf">opened</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
        <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Server </span><span class="si">{0.server_address}</span><span class="s2"> added to topology &quot;</span>
                     <span class="s2">&quot;</span><span class="si">{0.topology_id}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">event</span><span class="p">))</span>

    <span class="k">def</span> <span class="nf">description_changed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
        <span class="n">previous_server_type</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">previous_description</span><span class="o">.</span><span class="n">server_type</span>
        <span class="n">new_server_type</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">new_description</span><span class="o">.</span><span class="n">server_type</span>
        <span class="k">if</span> <span class="n">new_server_type</span> <span class="o">!=</span> <span class="n">previous_server_type</span><span class="p">:</span>
            <span class="c1"># server_type_name was added in PyMongo 3.4</span>
            <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span>
                <span class="s2">&quot;Server </span><span class="si">{0.server_address}</span><span class="s2"> changed type from &quot;</span>
                <span class="s2">&quot;</span><span class="si">{0.previous_description.server_type_name}</span><span class="s2"> to &quot;</span>
                <span class="s2">&quot;</span><span class="si">{0.new_description.server_type_name}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">event</span><span class="p">))</span>

    <span class="k">def</span> <span class="nf">closed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
        <span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;Server </span><span class="si">{0.server_address}</span><span class="s2"> removed from topology &quot;</span>
                        <span class="s2">&quot;</span><span class="si">{0.topology_id}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">event</span><span class="p">))</span>


<span class="k">class</span> <span class="nc">HeartbeatLogger</span><span class="p">(</span><span class="n">monitoring</span><span class="o">.</span><span class="n">ServerHeartbeatListener</span><span class="p">):</span>

    <span class="k">def</span> <span class="nf">started</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
        <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Heartbeat sent to server &quot;</span>
                     <span class="s2">&quot;</span><span class="si">{0.connection_id}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">event</span><span class="p">))</span>

    <span class="k">def</span> <span class="nf">succeeded</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
        <span class="c1"># The reply.document attribute was added in PyMongo 3.4.</span>
        <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Heartbeat to server </span><span class="si">{0.connection_id}</span><span class="s2"> &quot;</span>
                     <span class="s2">&quot;succeeded with reply &quot;</span>
                     <span class="s2">&quot;</span><span class="si">{0.reply.document}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">event</span><span class="p">))</span>

    <span class="k">def</span> <span class="nf">failed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
        <span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;Heartbeat to server </span><span class="si">{0.connection_id}</span><span class="s2"> &quot;</span>
                        <span class="s2">&quot;failed with error </span><span class="si">{0.reply}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">event</span><span class="p">))</span>

<span class="k">class</span> <span class="nc">TopologyLogger</span><span class="p">(</span><span class="n">monitoring</span><span class="o">.</span><span class="n">TopologyListener</span><span class="p">):</span>

    <span class="k">def</span> <span class="nf">opened</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
        <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Topology with id </span><span class="si">{0.topology_id}</span><span class="s2"> &quot;</span>
                     <span class="s2">&quot;opened&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">event</span><span class="p">))</span>

    <span class="k">def</span> <span class="nf">description_changed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
        <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Topology description updated for &quot;</span>
                     <span class="s2">&quot;topology id </span><span class="si">{0.topology_id}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">event</span><span class="p">))</span>
        <span class="n">previous_topology_type</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">previous_description</span><span class="o">.</span><span class="n">topology_type</span>
        <span class="n">new_topology_type</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">new_description</span><span class="o">.</span><span class="n">topology_type</span>
        <span class="k">if</span> <span class="n">new_topology_type</span> <span class="o">!=</span> <span class="n">previous_topology_type</span><span class="p">:</span>
            <span class="c1"># topology_type_name was added in PyMongo 3.4</span>
            <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span>
                <span class="s2">&quot;Topology </span><span class="si">{0.topology_id}</span><span class="s2"> changed type from &quot;</span>
                <span class="s2">&quot;</span><span class="si">{0.previous_description.topology_type_name}</span><span class="s2"> to &quot;</span>
                <span class="s2">&quot;</span><span class="si">{0.new_description.topology_type_name}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">event</span><span class="p">))</span>
        <span class="c1"># The has_writable_server and has_readable_server methods</span>
        <span class="c1"># were added in PyMongo 3.4.</span>
        <span class="k">if</span> <span class="ow">not</span> <span class="n">event</span><span class="o">.</span><span class="n">new_description</span><span class="o">.</span><span class="n">has_writable_server</span><span class="p">():</span>
            <span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;No writable servers available.&quot;</span><span class="p">)</span>
        <span class="k">if</span> <span class="ow">not</span> <span class="n">event</span><span class="o">.</span><span class="n">new_description</span><span class="o">.</span><span class="n">has_readable_server</span><span class="p">():</span>
            <span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;No readable servers available.&quot;</span><span class="p">)</span>

    <span class="k">def</span> <span class="nf">closed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
        <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Topology with id </span><span class="si">{0.topology_id}</span><span class="s2"> &quot;</span>
                     <span class="s2">&quot;closed&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">event</span><span class="p">))</span>
</pre></div>
</div>
<p>Event listeners can also be registered per instance of
<a class="reference internal" href="mongo_client.html#pymongo.mongo_client.MongoClient" title="pymongo.mongo_client.MongoClient"><code class="xref py py-class docutils literal notranslate"><span class="pre">MongoClient</span></code></a>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">client</span> <span class="o">=</span> <span class="n">MongoClient</span><span class="p">(</span><span class="n">event_listeners</span><span class="o">=</span><span class="p">[</span><span class="n">CommandLogger</span><span class="p">()])</span>
</pre></div>
</div>
<p>Note that previously registered global listeners are automatically included
when configuring per client event listeners. Registering a new global listener
will not add that listener to existing client instances.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Events are delivered <strong>synchronously</strong>. Application threads block
waiting for event handlers (e.g. <a class="reference internal" href="#pymongo.monitoring.CommandListener.started" title="pymongo.monitoring.CommandListener.started"><code class="xref py py-meth docutils literal notranslate"><span class="pre">started()</span></code></a>) to
return. Care must be taken to ensure that your event handlers are efficient
enough to not adversely affect overall application performance.</p>
</div>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">The command documents published through this API are <em>not</em> copies.
If you intend to modify them in any way you must copy them in your event
handler first.</p>
</div>
<dl class="function">
<dt id="pymongo.monitoring.register">
<code class="descclassname">pymongo.monitoring.</code><code class="descname">register</code><span class="sig-paren">(</span><em>listener</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.register" title="Permalink to this definition">¶</a></dt>
<dd><p>Register a global event listener.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>listener</cite>: A subclasses of <a class="reference internal" href="#pymongo.monitoring.CommandListener" title="pymongo.monitoring.CommandListener"><code class="xref py py-class docutils literal notranslate"><span class="pre">CommandListener</span></code></a>,
<a class="reference internal" href="#pymongo.monitoring.ServerHeartbeatListener" title="pymongo.monitoring.ServerHeartbeatListener"><code class="xref py py-class docutils literal notranslate"><span class="pre">ServerHeartbeatListener</span></code></a>, <a class="reference internal" href="#pymongo.monitoring.ServerListener" title="pymongo.monitoring.ServerListener"><code class="xref py py-class docutils literal notranslate"><span class="pre">ServerListener</span></code></a>, or
<a class="reference internal" href="#pymongo.monitoring.TopologyListener" title="pymongo.monitoring.TopologyListener"><code class="xref py py-class docutils literal notranslate"><span class="pre">TopologyListener</span></code></a>.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.CommandListener">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">CommandListener</code><a class="headerlink" href="#pymongo.monitoring.CommandListener" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract base class for command listeners.
Handles <cite>CommandStartedEvent</cite>, <cite>CommandSucceededEvent</cite>,
and <cite>CommandFailedEvent</cite>.</p>
<dl class="method">
<dt id="pymongo.monitoring.CommandListener.failed">
<code class="descname">failed</code><span class="sig-paren">(</span><em>event</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.CommandListener.failed" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract method to handle a <cite>CommandFailedEvent</cite>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>event</cite>: An instance of <a class="reference internal" href="#pymongo.monitoring.CommandFailedEvent" title="pymongo.monitoring.CommandFailedEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">CommandFailedEvent</span></code></a>.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="pymongo.monitoring.CommandListener.started">
<code class="descname">started</code><span class="sig-paren">(</span><em>event</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.CommandListener.started" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract method to handle a <cite>CommandStartedEvent</cite>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>event</cite>: An instance of <a class="reference internal" href="#pymongo.monitoring.CommandStartedEvent" title="pymongo.monitoring.CommandStartedEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">CommandStartedEvent</span></code></a>.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="pymongo.monitoring.CommandListener.succeeded">
<code class="descname">succeeded</code><span class="sig-paren">(</span><em>event</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.CommandListener.succeeded" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract method to handle a <cite>CommandSucceededEvent</cite>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>event</cite>: An instance of <a class="reference internal" href="#pymongo.monitoring.CommandSucceededEvent" title="pymongo.monitoring.CommandSucceededEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">CommandSucceededEvent</span></code></a>.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.ServerListener">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">ServerListener</code><a class="headerlink" href="#pymongo.monitoring.ServerListener" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract base class for server listeners.
Handles <cite>ServerOpeningEvent</cite>, <cite>ServerDescriptionChangedEvent</cite>, and
<cite>ServerClosedEvent</cite>.</p>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.3.</span></p>
</div>
<dl class="method">
<dt id="pymongo.monitoring.ServerListener.closed">
<code class="descname">closed</code><span class="sig-paren">(</span><em>event</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.ServerListener.closed" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract method to handle a <cite>ServerClosedEvent</cite>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>event</cite>: An instance of <a class="reference internal" href="#pymongo.monitoring.ServerClosedEvent" title="pymongo.monitoring.ServerClosedEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">ServerClosedEvent</span></code></a>.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="pymongo.monitoring.ServerListener.description_changed">
<code class="descname">description_changed</code><span class="sig-paren">(</span><em>event</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.ServerListener.description_changed" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract method to handle a <cite>ServerDescriptionChangedEvent</cite>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>event</cite>: An instance of <a class="reference internal" href="#pymongo.monitoring.ServerDescriptionChangedEvent" title="pymongo.monitoring.ServerDescriptionChangedEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">ServerDescriptionChangedEvent</span></code></a>.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="pymongo.monitoring.ServerListener.opened">
<code class="descname">opened</code><span class="sig-paren">(</span><em>event</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.ServerListener.opened" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract method to handle a <cite>ServerOpeningEvent</cite>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>event</cite>: An instance of <a class="reference internal" href="#pymongo.monitoring.ServerOpeningEvent" title="pymongo.monitoring.ServerOpeningEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">ServerOpeningEvent</span></code></a>.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.ServerHeartbeatListener">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">ServerHeartbeatListener</code><a class="headerlink" href="#pymongo.monitoring.ServerHeartbeatListener" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract base class for server heartbeat listeners.
Handles <cite>ServerHeartbeatStartedEvent</cite>, <cite>ServerHeartbeatSucceededEvent</cite>,
and <cite>ServerHeartbeatFailedEvent</cite>.</p>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.3.</span></p>
</div>
<dl class="method">
<dt id="pymongo.monitoring.ServerHeartbeatListener.failed">
<code class="descname">failed</code><span class="sig-paren">(</span><em>event</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.ServerHeartbeatListener.failed" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract method to handle a <cite>ServerHeartbeatFailedEvent</cite>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>event</cite>: An instance of <a class="reference internal" href="#pymongo.monitoring.ServerHeartbeatFailedEvent" title="pymongo.monitoring.ServerHeartbeatFailedEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">ServerHeartbeatFailedEvent</span></code></a>.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="pymongo.monitoring.ServerHeartbeatListener.started">
<code class="descname">started</code><span class="sig-paren">(</span><em>event</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.ServerHeartbeatListener.started" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract method to handle a <cite>ServerHeartbeatStartedEvent</cite>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>event</cite>: An instance of <a class="reference internal" href="#pymongo.monitoring.ServerHeartbeatStartedEvent" title="pymongo.monitoring.ServerHeartbeatStartedEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">ServerHeartbeatStartedEvent</span></code></a>.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="pymongo.monitoring.ServerHeartbeatListener.succeeded">
<code class="descname">succeeded</code><span class="sig-paren">(</span><em>event</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.ServerHeartbeatListener.succeeded" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract method to handle a <cite>ServerHeartbeatSucceededEvent</cite>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>event</cite>: An instance of <a class="reference internal" href="#pymongo.monitoring.ServerHeartbeatSucceededEvent" title="pymongo.monitoring.ServerHeartbeatSucceededEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">ServerHeartbeatSucceededEvent</span></code></a>.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.TopologyListener">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">TopologyListener</code><a class="headerlink" href="#pymongo.monitoring.TopologyListener" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract base class for topology monitoring listeners.
Handles <cite>TopologyOpenedEvent</cite>, <cite>TopologyDescriptionChangedEvent</cite>, and
<cite>TopologyClosedEvent</cite>.</p>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.3.</span></p>
</div>
<dl class="method">
<dt id="pymongo.monitoring.TopologyListener.closed">
<code class="descname">closed</code><span class="sig-paren">(</span><em>event</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.TopologyListener.closed" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract method to handle a <cite>TopologyClosedEvent</cite>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>event</cite>: An instance of <a class="reference internal" href="#pymongo.monitoring.TopologyClosedEvent" title="pymongo.monitoring.TopologyClosedEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">TopologyClosedEvent</span></code></a>.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="pymongo.monitoring.TopologyListener.description_changed">
<code class="descname">description_changed</code><span class="sig-paren">(</span><em>event</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.TopologyListener.description_changed" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract method to handle a <cite>TopologyDescriptionChangedEvent</cite>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>event</cite>: An instance of <a class="reference internal" href="#pymongo.monitoring.TopologyDescriptionChangedEvent" title="pymongo.monitoring.TopologyDescriptionChangedEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">TopologyDescriptionChangedEvent</span></code></a>.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="pymongo.monitoring.TopologyListener.opened">
<code class="descname">opened</code><span class="sig-paren">(</span><em>event</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.TopologyListener.opened" title="Permalink to this definition">¶</a></dt>
<dd><p>Abstract method to handle a <cite>TopologyOpenedEvent</cite>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>event</cite>: An instance of <a class="reference internal" href="#pymongo.monitoring.TopologyOpenedEvent" title="pymongo.monitoring.TopologyOpenedEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">TopologyOpenedEvent</span></code></a>.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.CommandStartedEvent">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">CommandStartedEvent</code><span class="sig-paren">(</span><em>command</em>, <em>database_name</em>, <em>*args</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.CommandStartedEvent" title="Permalink to this definition">¶</a></dt>
<dd><p>Event published when a command starts.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>command</cite>: The command document.</li>
<li><cite>database_name</cite>: The name of the database this command was run against.</li>
<li><cite>request_id</cite>: The request id for this operation.</li>
<li><cite>connection_id</cite>: The address (host, port) of the server this command
was sent to.</li>
<li><cite>operation_id</cite>: An optional identifier for a series of related events.</li>
</ul>
</td>
</tr>
</tbody>
</table>
<dl class="attribute">
<dt id="pymongo.monitoring.CommandStartedEvent.command">
<code class="descname">command</code><a class="headerlink" href="#pymongo.monitoring.CommandStartedEvent.command" title="Permalink to this definition">¶</a></dt>
<dd><p>The command document.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandStartedEvent.command_name">
<code class="descname">command_name</code><a class="headerlink" href="#pymongo.monitoring.CommandStartedEvent.command_name" title="Permalink to this definition">¶</a></dt>
<dd><p>The command name.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandStartedEvent.connection_id">
<code class="descname">connection_id</code><a class="headerlink" href="#pymongo.monitoring.CommandStartedEvent.connection_id" title="Permalink to this definition">¶</a></dt>
<dd><p>The address (host, port) of the server this command was sent to.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandStartedEvent.database_name">
<code class="descname">database_name</code><a class="headerlink" href="#pymongo.monitoring.CommandStartedEvent.database_name" title="Permalink to this definition">¶</a></dt>
<dd><p>The name of the database this command was run against.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandStartedEvent.operation_id">
<code class="descname">operation_id</code><a class="headerlink" href="#pymongo.monitoring.CommandStartedEvent.operation_id" title="Permalink to this definition">¶</a></dt>
<dd><p>An id for this series of events or None.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandStartedEvent.request_id">
<code class="descname">request_id</code><a class="headerlink" href="#pymongo.monitoring.CommandStartedEvent.request_id" title="Permalink to this definition">¶</a></dt>
<dd><p>The request id for this operation.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.CommandSucceededEvent">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">CommandSucceededEvent</code><span class="sig-paren">(</span><em>duration</em>, <em>reply</em>, <em>command_name</em>, <em>request_id</em>, <em>connection_id</em>, <em>operation_id</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.CommandSucceededEvent" title="Permalink to this definition">¶</a></dt>
<dd><p>Event published when a command succeeds.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>duration</cite>: The command duration as a datetime.timedelta.</li>
<li><cite>reply</cite>: The server reply document.</li>
<li><cite>command_name</cite>: The command name.</li>
<li><cite>request_id</cite>: The request id for this operation.</li>
<li><cite>connection_id</cite>: The address (host, port) of the server this command
was sent to.</li>
<li><cite>operation_id</cite>: An optional identifier for a series of related events.</li>
</ul>
</td>
</tr>
</tbody>
</table>
<dl class="attribute">
<dt id="pymongo.monitoring.CommandSucceededEvent.command_name">
<code class="descname">command_name</code><a class="headerlink" href="#pymongo.monitoring.CommandSucceededEvent.command_name" title="Permalink to this definition">¶</a></dt>
<dd><p>The command name.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandSucceededEvent.connection_id">
<code class="descname">connection_id</code><a class="headerlink" href="#pymongo.monitoring.CommandSucceededEvent.connection_id" title="Permalink to this definition">¶</a></dt>
<dd><p>The address (host, port) of the server this command was sent to.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandSucceededEvent.duration_micros">
<code class="descname">duration_micros</code><a class="headerlink" href="#pymongo.monitoring.CommandSucceededEvent.duration_micros" title="Permalink to this definition">¶</a></dt>
<dd><p>The duration of this operation in microseconds.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandSucceededEvent.operation_id">
<code class="descname">operation_id</code><a class="headerlink" href="#pymongo.monitoring.CommandSucceededEvent.operation_id" title="Permalink to this definition">¶</a></dt>
<dd><p>An id for this series of events or None.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandSucceededEvent.reply">
<code class="descname">reply</code><a class="headerlink" href="#pymongo.monitoring.CommandSucceededEvent.reply" title="Permalink to this definition">¶</a></dt>
<dd><p>The server failure document for this operation.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandSucceededEvent.request_id">
<code class="descname">request_id</code><a class="headerlink" href="#pymongo.monitoring.CommandSucceededEvent.request_id" title="Permalink to this definition">¶</a></dt>
<dd><p>The request id for this operation.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.CommandFailedEvent">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">CommandFailedEvent</code><span class="sig-paren">(</span><em>duration</em>, <em>failure</em>, <em>*args</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.CommandFailedEvent" title="Permalink to this definition">¶</a></dt>
<dd><p>Event published when a command fails.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><cite>duration</cite>: The command duration as a datetime.timedelta.</li>
<li><cite>failure</cite>: The server reply document.</li>
<li><cite>command_name</cite>: The command name.</li>
<li><cite>request_id</cite>: The request id for this operation.</li>
<li><cite>connection_id</cite>: The address (host, port) of the server this command
was sent to.</li>
<li><cite>operation_id</cite>: An optional identifier for a series of related events.</li>
</ul>
</td>
</tr>
</tbody>
</table>
<dl class="attribute">
<dt id="pymongo.monitoring.CommandFailedEvent.command_name">
<code class="descname">command_name</code><a class="headerlink" href="#pymongo.monitoring.CommandFailedEvent.command_name" title="Permalink to this definition">¶</a></dt>
<dd><p>The command name.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandFailedEvent.connection_id">
<code class="descname">connection_id</code><a class="headerlink" href="#pymongo.monitoring.CommandFailedEvent.connection_id" title="Permalink to this definition">¶</a></dt>
<dd><p>The address (host, port) of the server this command was sent to.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandFailedEvent.duration_micros">
<code class="descname">duration_micros</code><a class="headerlink" href="#pymongo.monitoring.CommandFailedEvent.duration_micros" title="Permalink to this definition">¶</a></dt>
<dd><p>The duration of this operation in microseconds.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandFailedEvent.failure">
<code class="descname">failure</code><a class="headerlink" href="#pymongo.monitoring.CommandFailedEvent.failure" title="Permalink to this definition">¶</a></dt>
<dd><p>The server failure document for this operation.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandFailedEvent.operation_id">
<code class="descname">operation_id</code><a class="headerlink" href="#pymongo.monitoring.CommandFailedEvent.operation_id" title="Permalink to this definition">¶</a></dt>
<dd><p>An id for this series of events or None.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.CommandFailedEvent.request_id">
<code class="descname">request_id</code><a class="headerlink" href="#pymongo.monitoring.CommandFailedEvent.request_id" title="Permalink to this definition">¶</a></dt>
<dd><p>The request id for this operation.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.ServerDescriptionChangedEvent">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">ServerDescriptionChangedEvent</code><span class="sig-paren">(</span><em>previous_description</em>, <em>new_description</em>, <em>*args</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.ServerDescriptionChangedEvent" title="Permalink to this definition">¶</a></dt>
<dd><p>Published when server description changes.</p>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.3.</span></p>
</div>
<dl class="attribute">
<dt id="pymongo.monitoring.ServerDescriptionChangedEvent.new_description">
<code class="descname">new_description</code><a class="headerlink" href="#pymongo.monitoring.ServerDescriptionChangedEvent.new_description" title="Permalink to this definition">¶</a></dt>
<dd><p>The new
<a class="reference internal" href="server_description.html#pymongo.server_description.ServerDescription" title="pymongo.server_description.ServerDescription"><code class="xref py py-class docutils literal notranslate"><span class="pre">ServerDescription</span></code></a>.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.ServerDescriptionChangedEvent.previous_description">
<code class="descname">previous_description</code><a class="headerlink" href="#pymongo.monitoring.ServerDescriptionChangedEvent.previous_description" title="Permalink to this definition">¶</a></dt>
<dd><p>The previous
<a class="reference internal" href="server_description.html#pymongo.server_description.ServerDescription" title="pymongo.server_description.ServerDescription"><code class="xref py py-class docutils literal notranslate"><span class="pre">ServerDescription</span></code></a>.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.ServerDescriptionChangedEvent.server_address">
<code class="descname">server_address</code><a class="headerlink" href="#pymongo.monitoring.ServerDescriptionChangedEvent.server_address" title="Permalink to this definition">¶</a></dt>
<dd><p>The address (host/port pair) of the server</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.ServerDescriptionChangedEvent.topology_id">
<code class="descname">topology_id</code><a class="headerlink" href="#pymongo.monitoring.ServerDescriptionChangedEvent.topology_id" title="Permalink to this definition">¶</a></dt>
<dd><p>A unique identifier for the topology this server is a part of.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.ServerOpeningEvent">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">ServerOpeningEvent</code><span class="sig-paren">(</span><em>server_address</em>, <em>topology_id</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.ServerOpeningEvent" title="Permalink to this definition">¶</a></dt>
<dd><p>Published when server is initialized.</p>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.3.</span></p>
</div>
<dl class="attribute">
<dt id="pymongo.monitoring.ServerOpeningEvent.server_address">
<code class="descname">server_address</code><a class="headerlink" href="#pymongo.monitoring.ServerOpeningEvent.server_address" title="Permalink to this definition">¶</a></dt>
<dd><p>The address (host/port pair) of the server</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.ServerOpeningEvent.topology_id">
<code class="descname">topology_id</code><a class="headerlink" href="#pymongo.monitoring.ServerOpeningEvent.topology_id" title="Permalink to this definition">¶</a></dt>
<dd><p>A unique identifier for the topology this server is a part of.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.ServerClosedEvent">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">ServerClosedEvent</code><span class="sig-paren">(</span><em>server_address</em>, <em>topology_id</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.ServerClosedEvent" title="Permalink to this definition">¶</a></dt>
<dd><p>Published when server is closed.</p>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.3.</span></p>
</div>
<dl class="attribute">
<dt id="pymongo.monitoring.ServerClosedEvent.server_address">
<code class="descname">server_address</code><a class="headerlink" href="#pymongo.monitoring.ServerClosedEvent.server_address" title="Permalink to this definition">¶</a></dt>
<dd><p>The address (host/port pair) of the server</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.ServerClosedEvent.topology_id">
<code class="descname">topology_id</code><a class="headerlink" href="#pymongo.monitoring.ServerClosedEvent.topology_id" title="Permalink to this definition">¶</a></dt>
<dd><p>A unique identifier for the topology this server is a part of.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.TopologyDescriptionChangedEvent">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">TopologyDescriptionChangedEvent</code><span class="sig-paren">(</span><em>previous_description</em>, <em>new_description</em>, <em>*args</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.TopologyDescriptionChangedEvent" title="Permalink to this definition">¶</a></dt>
<dd><p>Published when the topology description changes.</p>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.3.</span></p>
</div>
<dl class="attribute">
<dt id="pymongo.monitoring.TopologyDescriptionChangedEvent.new_description">
<code class="descname">new_description</code><a class="headerlink" href="#pymongo.monitoring.TopologyDescriptionChangedEvent.new_description" title="Permalink to this definition">¶</a></dt>
<dd><p>The new
<a class="reference internal" href="topology_description.html#pymongo.topology_description.TopologyDescription" title="pymongo.topology_description.TopologyDescription"><code class="xref py py-class docutils literal notranslate"><span class="pre">TopologyDescription</span></code></a>.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.TopologyDescriptionChangedEvent.previous_description">
<code class="descname">previous_description</code><a class="headerlink" href="#pymongo.monitoring.TopologyDescriptionChangedEvent.previous_description" title="Permalink to this definition">¶</a></dt>
<dd><p>The previous
<a class="reference internal" href="topology_description.html#pymongo.topology_description.TopologyDescription" title="pymongo.topology_description.TopologyDescription"><code class="xref py py-class docutils literal notranslate"><span class="pre">TopologyDescription</span></code></a>.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.TopologyDescriptionChangedEvent.topology_id">
<code class="descname">topology_id</code><a class="headerlink" href="#pymongo.monitoring.TopologyDescriptionChangedEvent.topology_id" title="Permalink to this definition">¶</a></dt>
<dd><p>A unique identifier for the topology this server is a part of.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.TopologyOpenedEvent">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">TopologyOpenedEvent</code><span class="sig-paren">(</span><em>topology_id</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.TopologyOpenedEvent" title="Permalink to this definition">¶</a></dt>
<dd><p>Published when the topology is initialized.</p>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.3.</span></p>
</div>
<dl class="attribute">
<dt id="pymongo.monitoring.TopologyOpenedEvent.topology_id">
<code class="descname">topology_id</code><a class="headerlink" href="#pymongo.monitoring.TopologyOpenedEvent.topology_id" title="Permalink to this definition">¶</a></dt>
<dd><p>A unique identifier for the topology this server is a part of.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.TopologyClosedEvent">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">TopologyClosedEvent</code><span class="sig-paren">(</span><em>topology_id</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.TopologyClosedEvent" title="Permalink to this definition">¶</a></dt>
<dd><p>Published when the topology is closed.</p>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.3.</span></p>
</div>
<dl class="attribute">
<dt id="pymongo.monitoring.TopologyClosedEvent.topology_id">
<code class="descname">topology_id</code><a class="headerlink" href="#pymongo.monitoring.TopologyClosedEvent.topology_id" title="Permalink to this definition">¶</a></dt>
<dd><p>A unique identifier for the topology this server is a part of.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.ServerHeartbeatStartedEvent">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">ServerHeartbeatStartedEvent</code><span class="sig-paren">(</span><em>connection_id</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.ServerHeartbeatStartedEvent" title="Permalink to this definition">¶</a></dt>
<dd><p>Published when a heartbeat is started.</p>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.3.</span></p>
</div>
<dl class="attribute">
<dt id="pymongo.monitoring.ServerHeartbeatStartedEvent.connection_id">
<code class="descname">connection_id</code><a class="headerlink" href="#pymongo.monitoring.ServerHeartbeatStartedEvent.connection_id" title="Permalink to this definition">¶</a></dt>
<dd><p>The address (host, port) of the server this heartbeat was sent
to.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.ServerHeartbeatSucceededEvent">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">ServerHeartbeatSucceededEvent</code><span class="sig-paren">(</span><em>duration</em>, <em>reply</em>, <em>*args</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.ServerHeartbeatSucceededEvent" title="Permalink to this definition">¶</a></dt>
<dd><p>Fired when the server heartbeat succeeds.</p>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.3.</span></p>
</div>
<dl class="attribute">
<dt id="pymongo.monitoring.ServerHeartbeatSucceededEvent.connection_id">
<code class="descname">connection_id</code><a class="headerlink" href="#pymongo.monitoring.ServerHeartbeatSucceededEvent.connection_id" title="Permalink to this definition">¶</a></dt>
<dd><p>The address (host, port) of the server this heartbeat was sent
to.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.ServerHeartbeatSucceededEvent.duration">
<code class="descname">duration</code><a class="headerlink" href="#pymongo.monitoring.ServerHeartbeatSucceededEvent.duration" title="Permalink to this definition">¶</a></dt>
<dd><p>The duration of this heartbeat in microseconds.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.ServerHeartbeatSucceededEvent.reply">
<code class="descname">reply</code><a class="headerlink" href="#pymongo.monitoring.ServerHeartbeatSucceededEvent.reply" title="Permalink to this definition">¶</a></dt>
<dd><p>An instance of <a class="reference internal" href="ismaster.html#pymongo.ismaster.IsMaster" title="pymongo.ismaster.IsMaster"><code class="xref py py-class docutils literal notranslate"><span class="pre">IsMaster</span></code></a>.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pymongo.monitoring.ServerHeartbeatFailedEvent">
<em class="property">class </em><code class="descclassname">pymongo.monitoring.</code><code class="descname">ServerHeartbeatFailedEvent</code><span class="sig-paren">(</span><em>duration</em>, <em>reply</em>, <em>*args</em><span class="sig-paren">)</span><a class="headerlink" href="#pymongo.monitoring.ServerHeartbeatFailedEvent" title="Permalink to this definition">¶</a></dt>
<dd><p>Fired when the server heartbeat fails, either with an “ok: 0”
or a socket exception.</p>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.3.</span></p>
</div>
<dl class="attribute">
<dt id="pymongo.monitoring.ServerHeartbeatFailedEvent.connection_id">
<code class="descname">connection_id</code><a class="headerlink" href="#pymongo.monitoring.ServerHeartbeatFailedEvent.connection_id" title="Permalink to this definition">¶</a></dt>
<dd><p>The address (host, port) of the server this heartbeat was sent
to.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.ServerHeartbeatFailedEvent.duration">
<code class="descname">duration</code><a class="headerlink" href="#pymongo.monitoring.ServerHeartbeatFailedEvent.duration" title="Permalink to this definition">¶</a></dt>
<dd><p>The duration of this heartbeat in microseconds.</p>
</dd></dl>

<dl class="attribute">
<dt id="pymongo.monitoring.ServerHeartbeatFailedEvent.reply">
<code class="descname">reply</code><a class="headerlink" href="#pymongo.monitoring.ServerHeartbeatFailedEvent.reply" title="Permalink to this definition">¶</a></dt>
<dd><p>A subclass of <code class="xref py py-exc docutils literal notranslate"><span class="pre">Exception</span></code>.</p>
</dd></dl>

</dd></dl>

</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h4>Previous topic</h4>
  <p class="topless"><a href="mongo_replica_set_client.html"
                        title="previous chapter"><code class="docutils literal notranslate"><span class="pre">mongo_replica_set_client</span></code> – Tools for connecting to a MongoDB replica set</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="operations.html"
                        title="next chapter"><code class="docutils literal notranslate"><span class="pre">operations</span></code> – Operation class definitions</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../../_sources/api/pymongo/monitoring.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3>Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../../search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    </div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="../../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="operations.html" title="operations – Operation class definitions"
             >next</a> |</li>
        <li class="right" >
          <a href="mongo_replica_set_client.html" title="mongo_replica_set_client – Tools for connecting to a MongoDB replica set"
             >previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../../index.html">PyMongo 3.7.2 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="../index.html" >API Documentation</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="index.html" ><code class="docutils literal notranslate"><span class="pre">pymongo</span></code> – Python driver for MongoDB</a> &#187;</li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
        &#169; Copyright MongoDB, Inc. 2008-present. MongoDB, Mongo, and the leaf logo are registered trademarks of MongoDB, Inc.
    </div>
  </body>
</html>