<!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="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Event Logging and Reporting &#8212; v2.1.0-beta</title>
    
    <link rel="stylesheet" href="../_static/dataone.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '2.1.0-beta',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true,
        SOURCELINK_SUFFIX: '.txt'
      };
    </script>
    <script type="text/javascript" src="../_static/mathjax_pre.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="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"></script>
    <script type="text/javascript" src="../_static/sidebar.js"></script>
    <link rel="author" title="About these documents" href="../about.html" />
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Logging Schema" href="LoggingSchema.html" />
    <link rel="prev" title="Serialization of Types for Transfer Over HTTP" href="Serialization.html" />
   
  
  <link media="only screen and (max-device-width: 480px)" href="../_static/small_dataone.css" type= "text/css" rel="stylesheet" />

  </head>
  <body role="document">
  
    <div class="version_notice">
      <p>
      <span class='bold'>Warning:</span> These documents are under active 
      development and subject to change (version 2.1.0-beta).<br />
      The latest release documents are at:
      <a href="https://purl.dataone.org/architecture">https://purl.dataone.org/architecture</a>
      </p>
    </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"
             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="LoggingSchema.html" title="Logging Schema"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="Serialization.html" title="Serialization of Types for Transfer Over HTTP"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html"></a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">&lt;no title&gt;</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="event-logging-and-reporting">
<h1>Event Logging and Reporting<a class="headerlink" href="#event-logging-and-reporting" title="Permalink to this headline">¶</a></h1>
<p>The DataONE system should log various interactions and operations in the system
to provide operational status information about the entire system, to report on
specific node operations, and to inform DataONE participants (users,
contributors, administrators) about their specific domain of interest in the
system. For example, a contributor might like to monitor use of their data and
where it is being replicated to. The methods <a class="reference internal" href="../apis/MN_APIs.html#MNCore.getLogRecords" title="MNCore.getLogRecords"><code class="xref py py-func docutils literal"><span class="pre">MNCore.getLogRecords()</span></code></a> and
<a class="reference internal" href="../apis/CN_APIs.html#CNCore.getLogRecords" title="CNCore.getLogRecords"><code class="xref py py-func docutils literal"><span class="pre">CNCore.getLogRecords()</span></code></a> provide outward facing services for retrieving
log information from member and coordinating nodes respectively.</p>
<p>Logging is described in use cases 16, 17, 18, 20, and potentially 19.</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="LoggingSchema.html">Logging Schema</a></li>
</ul>
</div>
<div class="section" id="use-cases-to-be-supported">
<span id="logging-use-case-synopsis"></span><h2>Use Cases to be Supported<a class="headerlink" href="#use-cases-to-be-supported" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li>UC 16 specifies &#8220;all CRUD operations on metadata and data are logged at each
node&#8221;</li>
<li>UC 17 indicates that all CRUD operation logs should be aggregated at the CNs</li>
<li>UC 18 indicates that a MN can retrieve aggregated logs about content that
originated from that MN.</li>
<li>UC 20 indicates that a data owner (original contributor, delegated owner)
can retrieve aggregated logs about objects they own.</li>
<li>UC 19 indicates that anyone can retrieve general use information for any
object in DataONE.</li>
</ul>
</div>
<div class="section" id="performance-metrics-to-be-reported">
<h2>Performance Metrics to be Reported<a class="headerlink" href="#performance-metrics-to-be-reported" title="Permalink to this headline">¶</a></h2>
<p>The performance metrics survey results from the Leadership Team specify (at
least) the following metrics should be captured. Items that may be captured
from the CI portion of the project are indicated by !!!.</p>
<p><strong>Size and Diversity of DataONE Data, Metadata, and Investigator Toolkit
Holdings</strong></p>
<ol class="arabic simple">
<li>!!! Data volume – total size of data holdings in DataONE Member Nodes and
Coordinating Nodes</li>
</ol>
<blockquote>
<div><dl class="docutils">
<dt>Recorded in:</dt>
<dd><ul class="first last simple">
<li>Total (including replicas) data volume + unique object data volume</li>
<li>Sysmeta</li>
</ul>
</dd>
</dl>
</div></blockquote>
<ol class="arabic simple" start="2">
<li>!!! Number of metadata records – quantity of metadata records held at a
Coordinating Node (note: the concept of a record may vary across metadata
standards)<ul>
<li>science metadata only</li>
</ul>
</li>
<li>!!! Number of data sets held by Member Nodes – (note: may be less
meaningful as an absolute value because of the immense variability in data set
granularity, but probably still useful in tracking the shape of the data
accumulation curve)</li>
</ol>
<blockquote>
<div><ul class="simple">
<li>system metadata</li>
</ul>
</div></blockquote>
<ol class="arabic simple" start="4">
<li>!!! Number and types of software tools included in the Investigator Toolkit</li>
</ol>
<blockquote>
<div><ul class="simple">
<li>!!</li>
<li>Mechanism to register external uses / implementations</li>
<li>HTTP user-agent</li>
</ul>
</div></blockquote>
<ol class="arabic simple" start="5">
<li>!!! Number of different metadata schemas supported – (note: more metadata
schemas is not necessarily better)</li>
</ol>
<blockquote>
<div><ul class="simple">
<li>object format from sysmeta</li>
</ul>
</div></blockquote>
<p><strong>DataONE System Capacity</strong></p>
<ol class="arabic simple" start="6">
<li>!!! Number of Member Nodes</li>
</ol>
<blockquote>
<div><ul class="simple">
<li>registry</li>
</ul>
</div></blockquote>
<ol class="arabic simple" start="7">
<li>!!! Total storage capacity at Member Nodes</li>
</ol>
<blockquote>
<div><ul class="simple">
<li>per member node</li>
<li>total</li>
<li>part of MN registration and capabilities</li>
</ul>
</div></blockquote>
<ol class="arabic simple" start="8">
<li>!!! Geographic coverage of Member Nodes – continents, regions, and countries
covered<ul>
<li>could potentially be part of capabilities (record physical location)</li>
</ul>
</li>
<li>!!! Number of Coordinating Nodes<ul>
<li>constant = 3</li>
<li>general expansion over five years to all countries.</li>
</ul>
</li>
<li>!!! Total storage capacity at Coordinating Nodes</li>
</ol>
<blockquote>
<div><ul class="simple">
<li>disk space</li>
</ul>
</div></blockquote>
<ol class="arabic simple" start="11">
<li>!!! Geographic coverage of Coordinating Nodes – continents, regions, and
countries covered</li>
</ol>
<blockquote>
<div><ul class="simple">
<li>capabilities  / metadata</li>
</ul>
</div></blockquote>
<p><strong>DataONE Usage Statistics</strong></p>
<ol class="arabic simple" start="12">
<li>!!! (CN LOG) Number of web hits on DataONE portal</li>
</ol>
<blockquote>
<div><ul class="simple">
<li>standard web hits from logs</li>
<li>aggregated across CNs</li>
</ul>
</div></blockquote>
<ol class="arabic simple" start="13">
<li>!!! (CN LOG) Number of DataONE users – (note: recording of individual IP
addresses may be most readily implemented; requiring users to login to Member
Nodes is not presently required)<ul>
<li>Any users of MNs = D1 user</li>
<li>Eventually can use authn subsystem</li>
</ul>
</li>
<li>!!! (supporting web site logs) Number of downloads of tools from the
Investigator Toolkit  &#8211;&gt; &#8220;Number of times tools are downloaded&#8221;<ul>
<li>Log analysis</li>
<li>Text needs to be clarified. ITK isn&#8217;t a place</li>
<li>supporting information (videos, documents, ...)</li>
</ul>
</li>
<li>!!! (CN LOG) Number of metadata catalog searches completed – (note: over
time it may also be desirable to assess precision and recall of incoming
searches)<ul>
<li>part of the Mercury log (in mysql)</li>
</ul>
</li>
<li>!!! (MN, CN LOG) Number of DataONE datasets downloaded (daily, weekly,
monthly, annually) – (note: this may be straightforward if included in
specifications for Member Node data, impossible otherwise)<ul>
<li>Member node access logs - need to be aggregated</li>
<li>What was pulled through D1.get() vs the native mechanisms of the MN</li>
<li></li>
</ul>
</li>
<li>!!! (MN, CN LOG) Most frequently downloaded datasets</li>
</ol>
<blockquote>
<div><ul class="simple">
<li>Same as 16</li>
</ul>
</div></blockquote>
<p><strong>Reliability and System Performance</strong></p>
<ol class="arabic simple" start="18">
<li>!!! (CN heartbeat logs) Uptime (availability) of Coordinating Nodes</li>
</ol>
<blockquote>
<div><ul class="simple">
<li>Need a monitoring service in addition to the CN service</li>
<li>also need to consider geographic accessibility (users)</li>
</ul>
</div></blockquote>
<ol class="arabic simple" start="19">
<li>!!! (MN heartbeat logs) Uptime (availability) of Member Nodes – (note:
tracked if heartbeat is fully implemented)</li>
</ol>
<blockquote>
<div><ul class="simple">
<li>Same as 18</li>
</ul>
</div></blockquote>
<ol class="arabic simple" start="20">
<li>!!! Server response time</li>
</ol>
<blockquote>
<div><ul class="simple">
<li>REST service performance</li>
<li>Define a bunch of test queries that can be executed in parallel for load testing.</li>
</ul>
</div></blockquote>
<ol class="arabic simple" start="21">
<li>!!! Response time of user interface</li>
</ol>
<blockquote>
<div><ul class="simple">
<li>Time for &#8220;page load&#8221; vs. number of concurrent users</li>
<li>Time for specific operations (test queries, test renderings, ...)</li>
</ul>
</div></blockquote>
<p><strong>Community Engagement</strong></p>
<ol class="arabic simple" start="22">
<li>Baseline assessment of scientists completed</li>
<li>Number of repeat assessments of scientists completed</li>
<li>Baseline assessment of other stakeholders completed</li>
<li>Number of repeat assessments of other stakeholders completed</li>
<li>Number of DataONE Partnership Agreements established</li>
</ol>
<p><strong>Education and Outreach</strong></p>
<ol class="arabic simple" start="27">
<li>Number of education modules developed and/or accessible through DataONE</li>
<li>Number of times education modules are downloaded</li>
<li>Number of best practices guides developed and/or accessible through DataONE</li>
<li>Number of times best practices guides are downloaded</li>
<li>Number of training sessions or workshops offered (e.g., at meetings)</li>
<li>Number of workshop participants</li>
<li>Number of people in DataONE International Users Group</li>
</ol>
<p><strong>Sustainability</strong></p>
<ol class="arabic simple" start="34">
<li>Amount of revenue (including in-kind support) generated annually to
support DataONE</li>
<li>Diversity of revenue streams – e.g., government, private foundations,
commercial for-profit sector, etc.</li>
<li>Number of projects and partners collaborating with DataONE or leveraging
DataONE infrastructure</li>
</ol>
</div>
<div class="section" id="union-of-use-cases-and-metrics">
<h2>Union of Use Cases and Metrics<a class="headerlink" href="#union-of-use-cases-and-metrics" title="Permalink to this headline">¶</a></h2>
<p>The following bullets represent the union of logging information indicated in
the use cases and the metrics that can be reported from the logs. The
information logged and suitable summarization and extraction procedures need
to be identified to ensure the following items can be addressed:</p>
<ul class="simple">
<li>all CRUD operations on metadata and data are logged at each node</li>
<li>all CRUD operation logs should be aggregated at the CNs</li>
<li>an MN can retrieve aggregated logs about content that originated from that
MN.</li>
<li>A data owner (original contributor, delegated owner) can retrieve aggregated
logs about objects they own.</li>
<li>Anyone can retrieve general use information for any object in DataONE.</li>
<li>(metric) Number of web hits on DataONE portal</li>
<li>(metric) Number of DataONE users</li>
<li>(metric) Number of downloads of tools from the Investigator Toolkit (From
the download site logs)</li>
<li>(metric) Number of metadata catalog searches completed</li>
<li>(metric) Number of DataONE datasets downloaded (daily, weekly, monthly,
annually)</li>
<li>(metric) Most frequently downloaded datasets</li>
</ul>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
    <p class="logo"><a href="http://dataone.org">
      <img class="logo" src="../_static/dataone_logo.png" alt="Logo"/>
    </a></p>
  <h3><a href="../index.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Event Logging and Reporting</a><ul>
<li><a class="reference internal" href="#use-cases-to-be-supported">Use Cases to be Supported</a></li>
<li><a class="reference internal" href="#performance-metrics-to-be-reported">Performance Metrics to be Reported</a></li>
<li><a class="reference internal" href="#union-of-use-cases-and-metrics">Union of Use Cases and Metrics</a></li>
</ul>
</li>
</ul>
<h3>Related Topics</h3>
<ul>
  <li><a href="../index.html">Documentation Overview</a><ul>
  <li><a href="index.html">&lt;no title&gt;</a><ul>
      <li>Previous: <a href="Serialization.html" title="previous chapter">Serialization of Types for Transfer Over HTTP</a></li>
      <li>Next: <a href="LoggingSchema.html" title="next chapter">Logging Schema</a></li>
  </ul></li>
  </ul></li>
</ul>
<div id="searchbox" style="display: none" role="search">
  <h3>Quick search</h3>
    <form class="search" action="../search.html" method="get">
      <div><input type="text" name="q" /></div>
      <div><input type="submit" value="Go" /></div>
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>

    <div class="footer">
      <div id="copyright">
      &copy; Copyright <a href="http://www.dataone.org">2009-2017, DataONE</a>.
        [ <a href="../_sources/design/logging.txt"
               rel="nofollow">Page Source</a> |
          <a href='https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/logging.txt'
            rel="nofollow">Revision History</a> ]&nbsp;&nbsp;
      </div>
      <div id="acknowledgement">
        <p>This material is based upon work supported by the National Science Foundation
          under Grant Numbers <a href="http://www.nsf.gov/awardsearch/showAward?AWD_ID=0830944">083094</a> and <a href="http://www.nsf.gov/awardsearch/showAward?AWD_ID=1430508">1430508</a>.</p>
        <p>Any opinions, findings, and conclusions or recommendations expressed in this
           material are those of the author(s) and do not necessarily reflect the views
           of the National Science Foundation.</p>
      </div>
    </div>
    <!--
    <hr />
     <div id="HCB_comment_box"><a href="http://www.htmlcommentbox.com">HTML Comment Box</a> is loading comments...</div>
     <link rel="stylesheet" type="text/css" href="_static/skin.css" />
     <script type="text/javascript" language="javascript" id="hcb">
     /*<! -*/
     (function()
     {s=document.createElement("script");
     s.setAttribute("type","text/javascript");
     s.setAttribute("src", "http://www.htmlcommentbox.com/jread?page="+escape((typeof hcb_user !== "undefined" && hcb_user.PAGE)||(""+window.location)).replace("+","%2B")+"&mod=%241%24wq1rdBcg%24Gg8J5iYSHJWwAJtlYu/yU."+"&opts=21407&num=10");
     if (typeof s!="undefined") document.getElementsByTagName("head")[0].appendChild(s);})();
      /* ->*/
     </script>
   -->
  </body>
</html>