Preparing to collect SMF data

To prepare the System Management Facilities (SMF) environment for the Z Common Data Provider to collect SMF records, review your SMF environment and choose the appropriate method.

Before you begin

Decide which method to use for collecting SMF data
The Z Common Data Provider can collect System Management Facilities (SMF) data from any of the following sources:
  • SMF in-memory resource (by using the SMF real-time interface)
  • SMF user exit
  • SMF log stream
You must decide which method you want to use, and complete the appropriate configuration for that method.
Review the following tips, and decide which method you want to use for collecting SMF data:
  • If SMF is running in log stream recording mode, collect SMF data from an SMF in-memory resource by using the SMF real-time interface.
  • If SMF is running in data set recording mode, consider changing the mode to log stream recording mode and collecting SMF data from an SMF in-memory resource by using the SMF real-time interface.

    If you cannot run SMF in log stream recording mode, use the SMF user exit to collect SMF data. For more information about the SMF user exit, see Installing the SMF user exit.

Review additional considerations for preparing to collect SMF data
Before you configure the Z Common Data Provider to collect SMF data, you must consider performance, latency for collection methods, and the differences between the Data Collector and the System Data Engine.
  • Performance considerations

    The collection and processing of SMF records consume system resources. For best performance, you can collect only the SMF record types or data streams that you need.

  • Latency considerations for collection methods

    The Z Common Data Provider uses interval-based approach to collect SMF data. If you collect SMF data from SMF user exits or SMF in-memory resource, you can specify a lower collection interval, for example, 10 seconds. If you collect SMF data from an SMF log stream, the Z Common Data Provider must run the MVS SWITCH SMF command to stream the data in SMF buffer to log streams, which will affect the normal SMF processing. It is recommended to specify an interval that is no less than 1 minute.

  • Differences between the Data Collector and the System Data Engine for collecting SMF data
    Both the Data Collector and the System Data Engine can collect SMF records from various sources. The Data Collector is used to collect SMF raw data into Kafka topics, and the SMF raw data must be then processed by the System Data Engine or user applications so that the SMF data can be used. See the following table for the differences between the two components for collecting SMF data.
    Table 1. Differences between the Data Collector and the System Data Engine for collecting SMF data
    Needs for collecting SMF data Data Collector System Data Engine
    Required No Yes to produce parsed data.
    Data status Raw data only Parsed or curated data
    Deploy to every LPAR Yes
    • Yes if the Data Collector is not used.
    • No if the Data Collector is used.
    Kafka required Yes No
    Target where data is sent Kafka only All supported subscribers
    CPU consumption Low High
    You can also use the Data Collector and the System Data Engine together to produce SMF data stream and send the data to analytics platforms.
    1. Deploy the Data Collector on every LPAR in the sysplex to collect SMF raw records into Kafka topics.
    2. Deploy the System Data Engine in one or more LPARs in the system plex to process SMF records that are collected by the Data Collector from Kafka topics.

Procedure

To prepare your SMF environment, complete the following steps that needs the fewest customizations.

  1. Run the following MVS command to display your SMF settings.
    D SMF,O
    The following is an example of the command output.
    IEE967I 11.40.56 SMF PARAMETERS 294                                         
            MEMBER = SMFPRM00                                                   
            NOWIC -- DEFAULT                                                    
            NOHFTSINTVL -- DEFAULT                                              
            NOARECSIGN -- DEFAULT                                               
            NORECSIGN -- DEFAULT                                                
            MEMLIMIT(00002G) -- PARMLIB                                         
            TWT(0400) -- PARMLIB                                                
            SWT(0010) -- PARMLIB                                                
            JWT(0030) -- PARMLIB                                                
            DUMPABND(RETRY) -- PARMLIB                                          
            SMFDPEXIT(USER3(IRRADU86)) -- PARMLIB                               
            SMFDPEXIT(USER2(IRRADU00)) -- PARMLIB                               
            SMFDLEXIT(USER3(IRRADU86)) -- PARMLIB                               
            SMFDLEXIT(USER2(IRRADU00)) -- PARMLIB                               
            FLOODPOL(TYPE(0:255),RECTHRESH(8000),INTVLTIME(0010),               
            MAXHIGHINTS(0020),ENDINTVL(0300),ACTION(MSG)) -- PARMLIB            
            FLOOD(ON) -- PARMLIB                                                
            NOMULCFUNC -- PARMLIB                                               
            REC(PERM) -- PARMLIB                                                
            STATUS(SMF,SYNC) -- PARMLIB                                         
            EMPTYEXCPSEC(SUPPRESS) -- PARMLIB                                   
            DDCONS(YES) -- PARMLIB                                              
            MAXEVENTINTRECS(60) -- PARMLIB                                      
            SMF30COUNT -- PARMLIB                                               
            SYS(EXITS(IEFU86)) -- PARMLIB                                       
            SYS(EXITS(IEFU85)) -- PARMLIB                                       
            SYS(EXITS(IEFU84)) -- PARMLIB                                       
            SYS(EXITS(IEFU83)) -- PARMLIB                                       
            SYS(EXITS(IEFU29)) -- PARMLIB                                       
            SYS(EXITS(IEFACTRT)) -- PARMLIB                                     
            SYS(EXITS(IEFUTL)) -- PARMLIB                                       
            SYS(EXITS(IEFUSO)) -- PARMLIB                                       
            SYS(EXITS(IEFUSI)) -- PARMLIB                                       
            SYS(EXITS(IEFUJV)) -- PARMLIB                                       
            SYS(EXITS(IEFUJP)) -- PARMLIB                                       
            SYS(EXITS(IEFUJI)) -- PARMLIB                                       
            SYS(EXITS(IEFUAV)) -- PARMLIB                                       
            SYS(NODETAIL) -- PARMLIB                                            
            SYS(INTERVAL(SMF,SYNC)) -- PARMLIB                                  
            SYS(TYPE(0,30,38,42,50,70:79,80,81,82,83,84,89,113,119,             
            100:102,110,115:116,120,121,123,124,125,127,249,1153,1154)) --      
            PARMLIB                                                             
            PERMFIX(0002M) -- PARMLIB                                           
            DSPSIZMAX(0002G) -- PARMLIB                                         
            LSNAME(IFASMF.TVT1006.CDP,TYPE(30,80:84,121,124,125)) --            
            PARMLIB                                                             
            LSNAME(IFASMF.TVT1006.PERF,TYPE(70:79)) -- PARMLIB                  
            INMEM(IFASMF.TVT1006.IMS,TYPE(127)) -- PARMLIB                      
            INMEM(IFASMF.TVT1006.KZHAN,TYPE(30,70,80,101,110)) -- PARMLIB       
            BUFSIZMAX(0001G) -- PARMLIB                                         
            LASTDS(MSG) -- PARMLIB                                              
            LISTDSN -- PARMLIB                                                  
            LISTDSN -- PARMLIB                        
            DSNAME(SYS1.MAN3) -- PARMLIB              
            DSNAME(SYS1.MAN2) -- PARMLIB              
            DSNAME(SYS1.MAN1) -- PARMLIB              
            NOBUFFS(MSG) -- PARMLIB                   
            BUFUSEWARN(25) -- PARMLIB                 
            MAXDORM(0100) -- PARMLIB                  
            AUTHSETSMF -- PARMLIB                     
            NOPROMPT -- PARMLIB                       
            SID(TVT1) -- DEFAULT                      
            SYNCVAL(00) -- PARMLIB                    
            INTVAL(10) -- PARMLIB                     
            RECORDING(LOGSTREAM) -- PARMLIB           
            ACTIVE -- PARMLIB                         
    
  2. From the command output of step 1, verify that the SMF recording is active and the recording mode.
    The prior example indicates SMF recording is active (ACTIVE) and the recording mode is log stream (RECORDING(LOGSTREAM)).
    1. If the SMF is in data set recording mode, you must install the SMF user exits, and configure the Z Common Data Provider to collect SMF data from SMF user exits. For more information, see Installing the SMF user exit.
    2. If the SMF is in log stream recording mode, review the LSNAME statements to verify that a log stream collects all the required SMF record types that you need. For more information about the SMF data streams and the associated SMF record types, see SMF data stream reference.
      • If an existing log stream meets your needs, you can configure the Z Common Data Provider to collect SMF data from the log stream.
      • If the existing log stream does not meet your needs, you can define an SMF in-memory resource to collect all the required SMF record types, and configure the Z Common Data Provider to collect SMF data from the SMF in-memory resource. For more information about how to define an SMF in-memory resource, see Defining in-memory resources.
  3. From the command output of step 1, verify that the required SMF record types are included in the TYPE keyword of the SYS statement. Update the SMFPRMxx member to include the SMF record types that are not included. For more information about the SMF data streams and the associated SMF record types, see SMF data stream reference.
    Important: The SMF types that you define on the SYS parameter in z/OS® SYS1.PARMLIB member SMFPRMxx (or its equivalent) do not take effect if you also have SUBSYS parameter definitions. Therefore, if you define any subsystems, you must define the associated SMF types, and MVS™ installation exits IEFU86, for each subsystem that is specified by a SUBSYS parameter.
  4. If you make any changes to the PARMLIB member SMFPRMxx, run the following command to make the changes take effect.
    SET SMF=xx

Results

z/OS SMF is properly configured for the Z Common Data Provider to collect SMF data from.