How to print the configuration used by DG Operator at startup?

Solution Verified - Updated

Environment

  • Red Hat Data Grid
    • 8.x
    • Red Hat Data Grid Operator

Issue

How to print the configuration used by DG Operator at startup?

Resolution

Below configuration is added on the Infinispan CR

Add logging category org.infinispan.SERVER: debug to print the complete configuration at startup - i.e. the server config will be output to the logs - in the Infinispan CR.

    logging:
      categories: 
          org.infinispan.SERVER: debug

The pod logs will bring:

$ oc logs dg-cluster-test-0
...
...
21:18:54,867 INFO  (main) [BOOT] JVM OpenJDK 64-Bit Server VM Red Hat, Inc. 11.0.17+8-LTS
21:18:54,874 INFO  (main) [BOOT] JVM arguments = [-server, -Dinfinispan.zero-capacity-node=false, -Xlog:gc*=info:file=/tmp/bananagc.log:time,level,tags,uptimemillis:filecount=10,filesize=1m, -XX:+UseG1GC, -Xmx1024m, -XX:+ExitOnOutOfMemoryError, -XX:MetaspaceSize=32m, -XX:MaxMetaspaceSize=96m, -Djava.net.preferIPv4Stack=true, -Djava.awt.headless=true, -Dvisualvm.display.name=redhat-datagrid-server, -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager, -Dinfinispan.server.home.path=/opt/infinispan, -classpath, :/opt/infinispan/boot/infinispan-server-runtime-13.0.10.Final-redhat-00001-loader.jar, org.infinispan.server.loader.Loader, org.infinispan.server.Bootstrap, --bind-address=0.0.0.0, -l, /opt/infinispan/server/conf/operator/log4j.xml, -c, operator/infinispan-base.xml, -c, user/infinispan-config.xml, -c, operator/infinispan-admin.xml]
21:18:54,874 INFO  (main) [BOOT] PID = 155
21:18:54,969 INFO  (main) [org.infinispan.SERVER] ISPN080000: Red Hat Data Grid Server starting
21:18:54,969 INFO  (main) [org.infinispan.SERVER] ISPN080017: Server configuration: operator/infinispan-base.xml
21:18:54,969 INFO  (main) [org.infinispan.SERVER] ISPN080017: Server configuration: user/infinispan-config.xml
21:18:54,969 INFO  (main) [org.infinispan.SERVER] ISPN080017: Server configuration: operator/infinispan-admin.xml
21:18:54,969 INFO  (main) [org.infinispan.SERVER] ISPN080032: Logging configuration: /opt/infinispan/server/conf/operator/log4j.xml
21:18:55,987 DEBUG (main) [org.infinispan.SERVER] Using endpoint realm "default" for Hot Rod
21:18:56,053 DEBUG (main) [org.infinispan.SERVER] Using endpoint realm "admin" for Hot Rod
21:18:56,054 DEBUG (main) [org.infinispan.SERVER] Enabled SCRAM, DIGEST and CRAM mechanisms for Hot Rod
<--------------------------------------------------------------------- HERE ------------------------------------------------------------------->
21:18:56,069 DEBUG (main) [org.infinispan.SERVER] Actual configuration: <?xml version="1.0"?> 
<infinispan xmlns="urn:infinispan:config:13.0">
    <jgroups transport="org.infinispan.remoting.transport.jgroups.JGroupsTransport">
        <stacks>
            <stack name="image-tcp" extends="tcp">
                <TCP port-range="0" bind-addr="SITE_LOCAL" bind-port="7800" enable-diagnostics="false"/>
                <dns.DNS-PING dns-record-type="A" stack.combine="REPLACE" stack.position="MPING" dns-query="dg-cluster-test-ping.dg-test.svc.cluster.local"/>
            </stack>
            <stack name="relay-tunnel" extends="udp">
                <TUNNEL stack.combine="REPLACE" port-range="0" bind-addr="SITE_LOCAL" bind-port="0" gossip-router-hosts="dg-cluster-test-site[7900],dg-cluster-lon-site.dg-test-lon.svc.cluster.local[7900]" enable-diagnostics="false" stack.position="UDP"/>
                <FD-SOCK stack.combine="REMOVE"/>
            </stack>
            <stack name="xsite" extends="image-tcp">
                <relay.RELAY2 site="SiteB" max-site-masters="1"/>
                <remote-sites default-stack="relay-tunnel" cluster="xsite">
                    <remote-site name="SiteB" cluster="xsite" stack="relay-tunnel"/>
                    <remote-site name="SiteA" cluster="xsite" stack="relay-tunnel"/>
                </remote-sites>
            </stack>
        </stacks>
    </jgroups>
    <cache-container name="default" shutdown-hook="DONT_REGISTER" statistics="true">
        <transport cluster="dg-cluster-test" node-name="" stack="xsite"/>
        <global-state>
            <persistent-location path="/opt/infinispan/server/data"/>
            <shared-persistent-location path="/opt/infinispan/server/data"/>
            <overlay-configuration-storage/>
        </global-state>
        <caches>
            <replicated-cache-configuration name="org.infinispan.REPL_ASYNC" mode="ASYNC" statistics="true">
                <locking concurrency-level="1000" acquire-timeout="15000" striping="false"/>
                <state-transfer timeout="60000"/>
            </replicated-cache-configuration>
            <scattered-cache-configuration name="org.infinispan.SCATTERED_SYNC" invalidation-batch-size="128" bias-acquisition="ON_WRITE" bias-lifespan="300000" mode="SYNC" remote-timeout="17500" statistics="true">
                <locking concurrency-level="1000" acquire-timeout="15000" striping="false"/>
            </scattered-cache-configuration>
            <distributed-cache-configuration name="org.infinispan.DIST_SYNC" mode="SYNC" remote-timeout="17500" statistics="true">
                <locking concurrency-level="1000" acquire-timeout="15000" striping="false"/>
                <state-transfer timeout="60000"/>
            </distributed-cache-configuration>
            <invalidation-cache-configuration name="org.infinispan.INVALIDATION_ASYNC" mode="ASYNC" statistics="true">
                <locking concurrency-level="1000" acquire-timeout="15000" striping="false"/>
            </invalidation-cache-configuration>
            <local-cache-configuration name="org.infinispan.LOCAL" statistics="true">
                <locking concurrency-level="1000" acquire-timeout="15000" striping="false"/>
            </local-cache-configuration>
            <invalidation-cache-configuration name="org.infinispan.INVALIDATION_SYNC" mode="SYNC" remote-timeout="17500" statistics="true">
                <locking concurrency-level="1000" acquire-timeout="15000" striping="false"/>
            </invalidation-cache-configuration>
            <replicated-cache-configuration name="org.infinispan.REPL_SYNC" mode="SYNC" remote-timeout="17500" statistics="true">
                <locking concurrency-level="1000" acquire-timeout="15000" striping="false"/>
                <state-transfer timeout="60000"/>
            </replicated-cache-configuration>
            <distributed-cache-configuration name="example.PROTOBUF_DIST" mode="SYNC" remote-timeout="17500" statistics="true">
                <encoding>
                    <key media-type="application/x-protostream"/>
                    <value media-type="application/x-protostream"/>
                </encoding>
                <locking concurrency-level="1000" acquire-timeout="15000" striping="false"/>
                <state-transfer timeout="60000"/>
            </distributed-cache-configuration>
            <distributed-cache-configuration name="org.infinispan.DIST_ASYNC" mode="ASYNC" statistics="true">
                <locking concurrency-level="1000" acquire-timeout="15000" striping="false"/>
                <state-transfer timeout="60000"/>
            </distributed-cache-configuration>
        </caches>
    </cache-container>
    <server xmlns="urn:infinispan:server:13.0">
        <interfaces>
            <interface name="public">
                <inet-address value="0.0.0.0"/>
            </interface>
        </interfaces>
        <socket-bindings port-offset="0" default-interface="public">
            <socket-binding name="default" port="11222" interface="public"/>
            <socket-binding name="admin" port="11223" interface="public"/>
        </socket-bindings>
        <security>
            <security-realms>
                <security-realm name="default"/>
                <security-realm name="admin">
                    <properties-realm groups-attribute="Roles">
                        <user-properties digest-realm-name="admin" path="cli-admin-users.properties"/>
                        <group-properties path="cli-admin-groups.properties"/>
                    </properties-realm>
                </security-realm>
            </security-realms>
        </security>
        <endpoints>
            <endpoint socket-binding="default" security-realm="default">
                <hotrod-connector name="hotrod-default" socket-binding="default"/>
                <rest-connector name="rest-default" socket-binding="default">
                    <authentication security-realm="default"/>
                </rest-connector>
            </endpoint>
            <endpoint socket-binding="admin" security-realm="admin">
                <rest-connector name="rest-admin" socket-binding="admin">
                    <authentication mechanisms="BASIC DIGEST" security-realm="admin"/>
                </rest-connector>
                <hotrod-connector name="hotrod-admin" socket-binding="admin">
                    <authentication security-realm="admin">
                        <sasl mechanisms="SCRAM-SHA-512 SCRAM-SHA-384 SCRAM-SHA-256 SCRAM-SHA-1 DIGEST-SHA-512 DIGEST-SHA-384 DIGEST-SHA-256 DIGEST-SHA CRAM-MD5 DIGEST-MD5"/>
                    </authentication>
                </hotrod-connector>
            </endpoint>
        </endpoints>
    </server>
</infinispan>

Warning

Be careful that the configuration above shows DNS-PING however, the protocol used is in fact DNS_ping:

<dns.DNS_PING dns_query="<custom-cr>-ping.<namespace>.svc.cluster.local"
                      dns_record_type="A"
                      stack.combine="REPLACE" stack.position="MPING"/>

Root Cause

See the chapter DG Operator 8.4 Guide - Logging for more details.

Diagnostic Steps

  1. Verify the spec.logging on the Infinispan CR
Product(s)
Components
Category
Tags

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.