<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>October</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>MONITORING AND ACCOUNTING FOR THE DISTRIBUTED COMPUTING SYSTEM OF THE ATLAS EXPERIMENT</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>D. Barberis</string-name>
          <email>Dario.Barberis@ge.infn.it</email>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A. Aimar</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A. Alekseev</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff6">6</xref>
          <xref ref-type="aff" rid="aff7">7</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>P.M. Rodrigues De Sousa Andrade</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>T.A. Beermann</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>R.W. Gardner</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff8">8</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>B. Garrido Bear</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>T. Korchuganova</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff6">6</xref>
          <xref ref-type="aff" rid="aff7">7</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>L. Magnoni</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>S. Padolski</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>E. Schanet</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff5">5</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>N. Tsvetkov</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>I. Vukotić</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff8">8</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>T. Wenaus</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Universidad Andrés Bello</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Santiago</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Chile</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Bergische Universitaet Wuppertal</institution>
          ,
          <addr-line>Gaußstr. 20, DE - 42119 Wuppertal</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Brookhaven National Laboratory</institution>
          ,
          <addr-line>Upton, NY</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>CERN</institution>
          ,
          <addr-line>CH - 1211 Genève 23</addr-line>
          ,
          <country country="CH">Switzerland</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Dario Barberis, Alberto Aimar, Aleksandr Alekseev, Pedro Manuel Rodrigues De Sousa Andrade, Thomas A Beermann</institution>
          ,
          <addr-line>Robert W Gardner, Borja Garrido Bear, Tatiana Korchuganova, Luca Magnoni, Siarhei Padolski, Eric Schanet, Nikolay Tsvetkov, Ilija Vukotić, Torre Wenaus</addr-line>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>Dipartimento di Fisica dell'Università di Genova e INFN Sezione di Genova</institution>
          ,
          <addr-line>Via Dodecaneso 33, I - 16146 Genova</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff5">
          <label>5</label>
          <institution>Fakultät für Physik, Ludwig-Maximilians-Universität München</institution>
          ,
          <addr-line>Am Coulombwall 1, DE - 85748 Garching bei München</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff6">
          <label>6</label>
          <institution>Institute of System Programming, Russian Academy of Science</institution>
          ,
          <addr-line>Moscow</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff7">
          <label>7</label>
          <institution>Plekhanov Russian University of Economics</institution>
          ,
          <addr-line>Stremyanny Lane 36, RU - 117997, Moscow</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff8">
          <label>8</label>
          <institution>University of Chicago, Enrico Fermi Institute</institution>
          ,
          <addr-line>5640 S Ellis Ave, Chicago, IL 60637</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2019</year>
      </pub-date>
      <volume>4</volume>
      <issue>2019</issue>
      <fpage>23</fpage>
      <lpage>29</lpage>
      <abstract>
        <p>Over the years, ATLAS has developed a large number of monitoring and accounting tools for distributed computing applications. In advance of the increased experiment data rates and monitoring data volumes foreseen for LHC Run 3, starting in 2012, a new infrastructure has been provided by the CERN-IT Monit group, based on InfluxDB as the data store and Grafana as the display environment. ATLAS is adapting and further developing its monitoring tools to use this infrastructure for data and workflow management monitoring and accounting dashboards, expanding the range of previous possibilities with the aim of achieving a single, simpler, environment for all monitoring applications. This contribution describes the tools used, the data flows for monitoring and accounting, the problems encountered and the solutions found.</p>
      </abstract>
      <kwd-group>
        <kwd>ATLAS</kwd>
        <kwd>distributed computing</kwd>
        <kwd>monitoring</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Every experiment that produces and processes large amounts of data needs to monitor the
infrastructure and the applications that deal with these data. Monitoring is essential to be able to spot
and fix any system failure in a short time and to identify ways to improve the system performance,
within the available hardware resources. The ATLAS experiment [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] at the CERN LHC accelerator
collected in 2015–2018 (“Run 2”) almost 20 billion physics events plus a large amount of detector
calibration data and about three times as many simulated events; events are stored in files that are then
grouped into datasets. The processing of all these events takes place using the distributed computing
infrastructure comprising the World-wide LHC Computing Grid (WLCG), consisting of over 120 sites
distributed in all continents, and a few High-Performance Computers (HPCs) that are available to
ATLAS.
      </p>
      <p>
        The Distributed Data Management system Rucio [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is used to move, store and catalogue all
ATLAS data. The processing operations are accomplished by the Workload Management system
PanDA [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], which takes all processing requests, transforms them into “tasks” that act on datasets,
splits tasks into jobs and finally submits the jobs to the best computing facility depending on CPU
availability and input data location. Both Rucio and PanDA operations depend on the availability of
central computing clusters where all components of their systems run.
      </p>
      <p>ATLAS used during LHC Run 1 (2009–2012) and Run 2 (2015–2018) a monitoring and
accounting infrastructure for the distributed computing applications developed about 10 years ago by
CERN-IT together with ATLAS members. These “old dashboards” started showing aging effects in
the last few years, visible primarily as an increasing slowness of data retrieval due to the massive
amount of data in Oracle databases. Also, the lack of in-depth knowledge for maintenance as most
original developers left long ago, led to a lack of flexibility and impossibility to develop new views
and/or data correlations across different data sources. This system worked well enough for general
monitoring until the end of Run 2 last year but was evidently in need of a good refurbishing.</p>
      <p>Since 2016 the CERN-IT MonIT group started developing a new infrastructure and
environment for monitoring and accounting applications based on modern Open Source components,
and ATLAS started implementing “new” dashboards using this infrastructure, for data and workload
accounting and global monitoring.</p>
      <p>
        In the meantime, the BigPandaMon [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] application was developed for user and task-oriented
monitoring of the jobs submitted to the ATLAS Grid/Cloud/HPC resources through PanDA; this is
now the workhorse of user-level job monitoring.
      </p>
      <p>In recent years many Analytic tools have appeared on the market. They can be used for more
detailed investigations and to correlate data from different sources. The Analytics cluster provided by
the University of Chicago allows a more interactive use of monitoring data for detailed investigations
and correlations between the various distributed computing systems.</p>
    </sec>
    <sec id="sec-2">
      <title>2. ATLAS dashboards in the MonIT infrastructure</title>
      <sec id="sec-2-1">
        <title>2.1 The MonIT infrastructure</title>
        <p>
          The CERN-IT MonIT group provides “Monitoring as a Service” for the CERN data centre and
the WLCG collaborations. The services consist in providing the infrastructure to collect, transport,
process and store the monitoring data, and the dashboards to display all collected information. The
diagram in Figure 1 shows the components used and the data flow through them:
 A number of data collector units receive information from the services to be monitored and feed
the data pipeline. The relevant collectors for our applications are the messaging system ActiveMQ
[
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], Collectd [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], Apache Flume [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] and Logstash [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
 Apache Kafka [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] is the core of the data pipeline. It decouples the producers of information from
the consumers, enables stream processing and is resilient, with a data retention time of 72 hours.
 Data are stored as time series in the InfluxDB [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] database, which can keep data long-term, with
adjustable time bins. All data are also kept in the Hadoop file system HDFS [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] for archival and
batch usage. Part of the data can be stored in ElasticSearch [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], which offers more interactive
analysis possibilities but has a shorter retention time (one month as default).
 The data can be visualised using dashboards in Grafana [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] or by developing more interactive
views in Kibana [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] or using Jupyter notebooks [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] using Swan [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
        <p>There are three groups of dashboards, with different read/write access parameters and frequencies of
upgrades: the Production dashboards are stable and updated only with tested improvements; the
Development dashboards are used to test new features or views before implementing them into
production; the Playground dashboards are used to explore new possibilities or tools.</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2 The ATLAS dashboards</title>
        <p>Several groups of dashboards have been developed to monitor ATLAS Distributed Computing
(ADC) applications. For Distributed Data Management, data usage and transfer information is
constantly sent by Rucio to the message brokers and then further processed; data storage information
is periodically extracted from the Rucio database in Oracle, dumped to HDFS and further processed to
be stored in InfluxDB. Many views are available, including historical views going back to the start of
Rucio in 2015, current snapshots of data volumes by site or data type, data transfer rates and
efficiencies between any two endpoints. Figure 2 shows two examples of DDM dashboards.</p>
        <p>
          The second most important group of dashboards refer to job monitoring and accounting. In
this case the information is collected from the PanDA database every ten minutes and stored into
1hour time bins; 24-hour, 7-day and 30-day bins are calculated automatically. The dashboards display
the number of pending, running or finalising jobs, as well as statistics for the completed jobs including
errors, CPU and wall-clock time consumption, and many other job parameters. Information is also
imported from other sources, such as the site topology from the ATLAS Grid Information System
(AGIS) [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] database, and the pledge information from the WLCG REBUS [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] database; in this way
it is possible to group the sites by federation, country or cloud, and display the actual CPU usage
against the pledges (see Figure 3). Data stored in the previous generation dashboard, dating back to the
start of the LHC in 2009, were also imported in the new system, so it is possible (but not fast) to
generate plots for 10 years of data processing operations.
        </p>
        <p>A dashboard for short-term but site-oriented job monitoring was also developed; here the data
are aggregated by site, thus reducing the cardinality by a large factor (the number of sites, over 120),
and keeping a reduced number of variables. In this way it is possible to display data directly in much
smaller time bins and create automatic alarms in case of anomalous conditions in real time. An
example of this dashboard is shown in Figure 4.</p>
        <p>Several other dashboards have been developed to monitor the status of other central and
distributed services and servers. In addition, a summary display of ADC monitoring dashboards was
created: the “Live Page”. It is a web site with several pages that show some statistics and a few static
plots extracted from the various dashboards and refreshed every hour; clicking on each plot leads to
the relevant dashboard where more detailed investigations of any problem can be performed (see
Figure 5). This is the entry point for shifters and computing managers wishing to have a global view of
the current status of the ADC systems.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. User level job/task monitoring with BigPandaMon</title>
      <p>The MonIT dashboards provide a wealth of information but by design they contain only
statistical aggregations of jobs and tasks, with their properties, stored as time series. For detailed
monitoring of the processing of tasks and job status evolutions, the BigPandaMon application provides
real-time access to the PanDA data in the Oracle database.</p>
      <p>BigPandaMon is built as an aggregator of information from different sources, of which the
PanDA database is the principal, but not the only, one. The retrieved information is cached for 10
minutes, allowing the users to digest it and formulate more detailed queries; if the new query only
needs information that is already cached during the main query, the system will respond very fast,
otherwise a new query to Oracle will be launched and the response time will depend on the amount of
retrieved data – usually a few seconds will suffice. Figure 6 shows the data flow within BigPandaMon.</p>
      <p>From the top page, users can select a number of views or search directly for a given task or
job, and get all details, including the relations between tasks and jobs, sites where the jobs are running
or have run, log files, error conditions and so on. Every displayed piece of information is clickable and
leads to the source of this information and additional details. Figure 7 shows examples of the task and
jobs tables, as well as the task-level statistics on job execution times, CPU and memory usage, and
task completion rates.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Analytics cluster at UChicago and its applications</title>
      <p>
        The analytics cluster at the University of Chicago provides an interactive environment to
develop additional or alternative dashboards and investigate correlations between several data sources.
It is complementary to the monitoring and accounting infrastructure at CERN. In addition to the
information imported from the PanDA and Rucio databases at CERN, it collects data from the WLCG
File Transfer System (FTS) [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] servers that are distributed in several locations, from the Frontier
servers that provide access to the conditions database [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], and from the PerfSonar [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] network
testing probes. It has been essential in tracking down wrong and repeated accesses to the conditions
database by ATLAS jobs [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] and in identifying malfunctioning network routes that can impact the
data transfers and thus the usage of ATLAS resources.
      </p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusions and Outlook</title>
      <p>ATLAS Distributed Computing has a coherent set of monitoring and accounting dashboards
and interactive tools. Technologies evolve all the time, so we have to follow them; we try to use Open
Source solutions as much as possible, even if at times some home-made parts are inevitable, for
example because of the low number of display options available in Grafana.</p>
      <p>The future is in the more interactive environments providing the possibility to correlate
information from many different sources. ATLAS has already started in this direction and is actively
developing new views and new tools to increase the level of automatic error or anomaly detection in
view of the start of LHC Run 3 in 2021.</p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgements</title>
      <p>This work was performed in the context of the ATLAS Collaboration. It was funded for the part
related to workflow management monitoring by the Russian Science Foundation under contract No.
19-71-30008 (research is conducted in Plekhanov Russian University of Economics).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>ATLAS</given-names>
            <surname>Collaboration</surname>
          </string-name>
          et al.,
          <source>2008 JINST 3 S08003</source>
          , doi: https://doi.org/10.1088/
          <fpage>1748</fpage>
          -0221/3/08/S08003.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Barisits</surname>
            <given-names>M</given-names>
          </string-name>
          et al.,
          <source>2019 Comput Softw Big Sci</source>
          <volume>3</volume>
          :
          <fpage>11</fpage>
          , doi: https://doi.org/10.1007/s41781-019-0026-3.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Maeno</surname>
            <given-names>T</given-names>
          </string-name>
          et al.,
          <source>2017 J. Phys. Conf. Ser. 898 052002</source>
          , doi: https://iopscience.iop.org/article/10.1088/
          <fpage>1742</fpage>
          -6596/898/5/052002.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Alekseev</surname>
            <given-names>A</given-names>
          </string-name>
          et al.,
          <source>2018 J. Phys. Conf. Ser. 1085 3</source>
          ,
          <issue>032043</issue>
          , doi: https://doi.org/10.1088/
          <fpage>1742</fpage>
          -6596/1085/3/032043.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5] ActiveMQ: https://activemq.apache.
          <source>org (accessed 23.11</source>
          .
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6] Collectd : https://collectd.
          <source>org (accessed 23.11</source>
          .
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7] Flume : https://flume.apache.
          <source>org (accessed 23.11</source>
          .
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8] Logstash: https://www.elastic.co/products/logstash (accessed
          <volume>23</volume>
          .11.
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9] Kafka: https://kafka.apache.
          <source>org (accessed 23.11</source>
          .
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10] InfluxDB: https://www.influxdata.
          <source>com (accessed 23.11</source>
          .
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <article-title>Hadoop</article-title>
          and HDFS : https://hadoop.apache.
          <source>org (accessed 23.11</source>
          .
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12] ElasticSearch: https://www.elastic.
          <source>co (accessed 23.11</source>
          .
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13] Grafana: https://grafana.
          <source>com (accessed 23.11</source>
          .
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14] Kibana: https://www.elastic.co/products/kibana (accessed
          <volume>23</volume>
          .11.
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15] Jupyter notebooks: http://jupyter.
          <source>org (accessed 23.11</source>
          .
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16] Swan: https://swan.web.cern.
          <source>ch (accessed 23.11</source>
          .
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Anisenkov</surname>
            <given-names>A</given-names>
          </string-name>
          et al.,
          <source>2019 EPJ Web Conf. 214 03003</source>
          , doi: https://doi.org/10.1051/epjconf/201921403003.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18] WLCG Rebus: https://wlcg-rebus.cern.ch/apps/topology (accessed
          <volume>23</volume>
          .11.
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Ayllon</surname>
            <given-names>A</given-names>
          </string-name>
          et al.,
          <source>2014 J.Phys.Conf.Ser. 513 032081</source>
          , doi: https://doi.org/10.1088/
          <fpage>1742</fpage>
          -6596/513/3/032081.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Barberis</surname>
            <given-names>D</given-names>
          </string-name>
          et al.,
          <source>2012 J.Phys.Conf.Ser. 396 052025</source>
          , doi: https://doi.org/10.1088/
          <fpage>1742</fpage>
          -6596/396/5/052025.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21] Perfsonar: https://www.perfsonar.
          <source>net (accessed 23.11</source>
          .
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Gallas</surname>
            <given-names>EJ</given-names>
          </string-name>
          and
          <string-name>
            <surname>Ozturk</surname>
            <given-names>N</given-names>
          </string-name>
          ,
          <source>2019 EPJ Web Conf. 214 04017</source>
          , doi: https://doi.org/10.1051/epjconf/201921404017.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>