_R_R_D_X_P_O_R_T(1)                         rrdtool                        _R_R_D_X_P_O_R_T(1)

NNAAMMEE
       rrdxport - Export data in XML format based on data from one or several
       RRD

SSYYNNOOPPSSIISS
       rrrrddttooooll xxppoorrtt [--ss|----ssttaarrtt _s_e_c_o_n_d_s] [--ee|----eenndd _s_e_c_o_n_d_s]
       [--mm|----mmaaxxrroowwss _r_o_w_s] [--SS|----sstteepp _v_a_l_u_e] [----jjssoonn] [--tt|----sshhoowwttiimmee]
       [----eennuummddss] [----ddaaeemmoonn|--dd _a_d_d_r_e_s_s] [DDEEFF::_v_n_a_m_e==_r_r_d::_d_s_-_n_a_m_e::_C_F]
       [CCDDEEFF::_v_n_a_m_e==_r_p_n_-_e_x_p_r_e_s_s_i_o_n] [XXPPOORRTT::_v_n_a_m_e[::_l_e_g_e_n_d]]

DDEESSCCRRIIPPTTIIOONN
       The xxppoorrtt function's main purpose is to write an XML formatted
       representation of the data stored in one or several RRRRDDs. It can also
       extract numerical reports.

       If no _X_P_O_R_T statements are found, there will be no output.

       --ss|----ssttaarrtt _s_e_c_o_n_d_s (default end-1day)
           The  time  when  the  exported  range should begin. Time in seconds
           since epoch (1970-01-01) is required. Negative numbers are relative
           to the current time. By default one  day  worth  of  data  will  be
           printed.   See also "AT-STYLE TIME SPECIFICATION" in rrdfetch for a
           detailed explanation on how to specify time.

           See "OUTPUT FORMAT" below for  details  on  how  this  affects  the
           output.

       --ee|----eenndd _s_e_c_o_n_d_s (default now)
           The  time when the exported range should end. Time in seconds since
           epoch.  See also "AT-STYLE TIME SPECIFICATION" in  rrdfetch  for  a
           detailed explanation on how to specify time.

           See  "OUTPUT  FORMAT"  below  for  details  on how this affects the
           output.

       --mm|----mmaaxxrroowwss _r_o_w_s (default 400 rows)
           This works like the --ww|----wwiiddtthh parameter of _r_r_d_g_r_a_p_h.  In  fact  it
           is  exactly the same, but the parameter was renamed to describe its
           purpose in this module. See _r_r_d_g_r_a_p_h documentation for details.

       --SS|----sstteepp _v_a_l_u_e (default automatic)
           See rrdgraph documentation.

       ----ddaaeemmoonn|--dd _a_d_d_r_e_s_s
           Address of the rrdcached daemon. If specified, a "flush" command is
           sent to the server  before  reading  the  RRD  files.  This  allows
           rrrrddttooooll  to  return  fresh data even if the daemon is configured to
           cache values for a long time.  For a list of accepted formats,  see
           the --ll option in the rrdcached manual.

             rrdtool xport --daemon unix:/var/run/rrdcached.sock ...

       --tt|----sshhoowwttiimmee
           include the time into each data row.

       ----jjssoonn
           produce json formatted output (instead of xml)

       ----eennuummddss
           The  generated  xml  should  contain  the data values in enumerated
           tags.

            <v0>val</v0><v1>val</v1>

       DDEEFF::_v_n_a_m_e==_r_r_d::_d_s_-_n_a_m_e::_C_F
           See _r_r_d_g_r_a_p_h documentation.

       CCDDEEFF::_v_n_a_m_e==_r_p_n_-_e_x_p_r_e_s_s_i_o_n
           See _r_r_d_g_r_a_p_h documentation.

       XXPPOORRTT::_v_n_a_m_e[::_l_e_g_e_n_d]
           At  least  one  _X_P_O_R_T  statement  should  be  present.  The  values
           referenced by _v_n_a_m_e are printed. Optionally add a legend.

OOUUTTPPUUTT FFOORRMMAATT
       The output is enclosed in an xxppoorrtt element and contains two blocks. The
       first  block is enclosed by a mmeettaa element and contains some meta data.
       The second block is enclosed by a ddaattaa element and  contains  the  data
       rows.

       Let's assume that the _x_p_o_r_t command looks like this:

         rrdtool xport \
                 --start now-1h --end now \
                 DEF:xx=host-inout.lo.rrd:output:AVERAGE \
                 DEF:yy=host-inout.lo.rrd:input:AVERAGE \
                 CDEF:aa=xx,yy,+,8,* \
                 XPORT:xx:"out bytes" \
                 XPORT:aa:"in and out bits"

       The  resulting  meta data section is (the values will depend on the RRD
       characteristics):

         <meta>
           <start>1020611700</start>
           <step>300</step>
           <end>1020615600</end>
           <rows>14</rows>
           <columns>2</columns>
           <legend>
             <entry>out bytes</entry>
             <entry>in and out bits</entry>
           </legend>
         </meta>

       The resulting data section is:

         <data>
           <row><t>1020611700</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
           <row><t>1020612000</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
           <row><t>1020612300</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
           <row><t>1020612600</t><v>3.4113333333e+00</v><v>5.4581333333e+01</v></row>
           <row><t>1020612900</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
           <row><t>1020613200</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
           <row><t>1020613500</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
           <row><t>1020613800</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
           <row><t>1020614100</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
           <row><t>1020614400</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
           <row><t>1020614700</t><v>3.7333333333e+00</v><v>5.9733333333e+01</v></row>
           <row><t>1020615000</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
           <row><t>1020615300</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
           <row><t>1020615600</t><v>NaN</v><v>NaN</v></row>
         </data>

       All the statistics in the output will use  the  same  step.  The  first
       sample will be the first sample starting immediately after ----ssttaarrtt. The
       last sample will be the one ending at or immediately after ----eenndd.

       Each  sample  has  a  timestamp  and one or more values. The timestamps
       associated with a value in RRDtool ALWAYS represent the time the sample
       was taken. Since any value you sample will represent some sort of  past
       state  your  sampling apparatus has gathered, the timestamp will always
       be at the end of the sampling period.

       RRDtool does not store the actual samples, but does internal resampling
       of the values presented to  it.  Nevertheless  when  a  data  value  is
       presented  with  a  single timestamp the timestamp is at the end of the
       period the value represents. Note that the timestamp itself is  outside
       the  period  the  sample is valid for. For more details about this, see
       PDP calculation explanation.

       So the time range for a  sample  with  a  timestamp  is  actually  from
       "timestamp - step" inclusive to "timestamp" exclusive.

       The first line of the sample output:

           <row><t>1020611700</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>

       therefore  means  that  the  values  for  the  interval  1020611400  to
       1020611699 were 3.4 and 54.4 for "out bytes"  and  "in  and  out  bits"
       respectively, because the value was taken at 1020611700.

EEXXAAMMPPLLEE 11
         rrdtool xport \
                 DEF:out=if1-inouts.rrd:outoctets:AVERAGE \
                 XPORT:out:"out bytes"

EEXXAAMMPPLLEE 22
         rrdtool xport \
                 DEF:out1=if1-inouts.rrd:outoctets:AVERAGE \
                 DEF:out2=if2-inouts.rrd:outoctets:AVERAGE \
                 CDEF:sum=out1,out2,+ \
                 XPORT:out1:"if1 out bytes" \
                 XPORT:out2:"if2 out bytes" \
                 XPORT:sum:"output sum"

EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
       The  following environment variables may be used to change the behavior
       of "rrdtool xport":

       RRRRDDCCAACCHHEEDD__AADDDDRREESSSS
           If this environment variable is set it will have the same effect as
           specifying the "--daemon" option on the command line. If  both  are
           present, the command line argument takes precedence.

AAUUTTHHOORR
       Tobias Oetiker <tobi@oetiker.ch>

1.10.3                            2026-05-25                       _R_R_D_X_P_O_R_T(1)
