_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 representa‐
     tion of the data stored in one or several RRRRDDs. It can also extract numeri‐
     cal 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 explana‐
         tion 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 de‐
         tailed 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 char‐
     acteristics):

       <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  sam‐
     ple will be the one ending at or immediately after ----eenndd.

     Each  sample has a timestamp and one or more values. The timestamps associ‐
     ated 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,  be‐
     cause 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.0                             2026-05-23                        _R_R_D_X_P_O_R_T(1)
