...
Query API is not only concerned with persistence layer but a multipurpose tool which can be extended via extension point. Out of the box the following API extensions are supported:
API | Version | Supported Nodes | Purpose | Example | |||||
---|---|---|---|---|---|---|---|---|---|
SQL:Core | 3.0.0+ | ADM, API, SFx | SQL interface for core RDBMS |
| |||||
HQL:Core | 3.0.0+ | ADM, API, SFx | Hibernate QL interface for core RDBMS |
| |||||
HQL:Payment | 3.0.0+ | ADM | Hibernate QL interface for payment RDBMS |
| |||||
IceCat:Product | 3.3.0+
|
| ADM | IceCat search interface to validate product XML |
| ||||||
FT:Product | 3.0.0+ | API,SFx | Lucene full text query interface |
|
In order to perform a query over desired medium:
...
Info |
---|
Cache search has a number of "smart search" options to list flooded, most used and largest in size caches. |
Performance sensors Label Body
Body |
---|
...
SaaS Colour info
SaaS | |
Colour | info |
---|
Performance sensors are fine detailed trackers or service layer API invocations.
...
- Total amount of time API is used - to identify execution hot spots
- Invocation count of an API - to identify most used API (possible caching recommendation)
- Average, min and max time - to identify resource contingencies and slow API
Performance samples
Label | |
---|---|
|
...
|
Monitoring CPU and memory consumption in any given application may prove crucial in identifying performance bottleneck and resource restraints.
...
Info |
---|
REST API can be used to feed this information into your environment tooling |
Tasks
Label | |
---|---|
|
...
|
YCE
The platform has several asynchronous recurring processes in order to maintain its functions such as order state machine, price calculations, data maintenance, email processing etc. All schedules are declared in config-cronjob.properties which set the default rhythm for the platform, however in most production systems this rhythm requires some orchestration in many cases real time.
Label | ||||
---|---|---|---|---|
|
...
- Run task now - platform automatically calculates a one-off schedule to run task in 30seconds, after task has run manually it will become unscheduled and not run anymore
- Restore schedule - platform automatically will use the original schedule to from properties file
- Reschedule - user is invited to change the cron expression to instruct the platform to perform task at a different schedule
Storefront component rendering diagnostics Label Body
Body |
---|
...
SaaS Colour info
SaaS | |
Colour | info |
---|
Storefront themes multiplied by complexities of CMS further obscured by vast variety of data and caching sometimes results in questioning why page rendering has been done in a certain way? or why some components are not present on the page? or are present but should not be?
SFG
Label | ||||
---|---|---|---|---|
|
...
Uses current shop context to set shopCode variable, which produces value such as "SHOP10". This value can be used in file names to direct message of specific shop into a separate file.
Code Block | ||
---|---|---|
| ||
<appender name="SHOPPAY" class="ch.qos.logback.classic.sift.SiftingAppender"> <!-- declare discriminator --> <discriminator class="org.yes.cart.utils.log.ShopCodeLogDiscriminator"/> <sift> <!-- shopCode can be use in appender name (e.g. view in JMX) --> <appender name="SHOPPAY-${shopCode}" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- shopCode can be use in file name --> <File>${catalina.base}/logs/yc-${shopCode}-pay.log</File> <Append>true</Append> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %c{1}:%L - %m%n</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <maxIndex>10</maxIndex> <FileNamePattern>${catalina.base}/logs/yc-${shopCode}-pay.log.%i.zip</FileNamePattern> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> </sift> </appender> |
...
Uses current shop context + log message level to set shopCode variable, which produces value such as "SHOP10-WARN". This value can be used in file names to direct message of specific level of specific shop into a separate file
Code Block | ||
---|---|---|
| ||
<appender name="DEFAULT" class="ch.qos.logback.classic.sift.SiftingAppender"> <!-- declare discriminator --> <discriminator class="org.yes.cart.utils.log.ShopCodeAndLevelLogDiscriminator"/> <sift> <!-- shopCode can be use in appender name (e.g. view in JMX) --> <appender name="DEFAULT-${shopCode}" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- shopCode can be use in file name --> <File>${catalina.base}/logs/yc-${shopCode}.log</File> <Append>true</Append> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %c{1}:%L - %m%n</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <maxIndex>10</maxIndex> <FileNamePattern>${catalina.base}/logs/yc-${shopCode}.log.%i.zip</FileNamePattern> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> </sift> </appender> |
Out of the box logs
Log file(s) | Sift | Level | Purpose |
---|---|---|---|
Storefront (API, SFx) | |||
yc-${shopCode}.log | shop code + level | INFO | DEFAULT-${shopCode} appender (root) |
yc-${shopCode}-pay.log | shop code | DEBUG | SHOPPAY appender, payment gateway related logging, packages:
|
yc-orderexport.log | INFO | ORDEREXPORT appender, order export related logging, packages:
| |
yc-orderstate.log | INFO | ORDERSTATE appender, order transition related logging, packages:
| |
yc-mail.log | INFO | MAIL appender, email generation and send logging, packages:
| |
yc-maildump.log | INFO | MAILDUMP appender, log full content of email that was sent | |
yc-audit.csv | INFO | AUDIT appender, log persistence updates audit records Change to TRACE to enable audit logging | |
yc-${shopCode}-ftq.log | shop code | INFO | FTQ-${shopCode} appender, logs all full text queries Change to DEBUG to enable query logging Change to TRACE to enable query explanations logging |
yc-ws.log | ERROR | WS appender, logs web services communication (WS.IN and WS.OUT) Change to INFO to enable logging | |
yc-config.log | INFO | CONFIG appender, logs information on loaded modules and extension points Change to DEBUG to enable logging | |
yc-${shopCode}-sac.log | shop code | DEBUG | SAC (Security access control) appender, logs access violations |
Admin (ADM) | |||
yc-${shopCode}.log | shop code + level | INFO | DEFAULT-${shopCode} appender (root) |
yc-${shopCode}-pay.log | shop code | DEBUG | SHOPPAY appender, payment gateway related logging, packages:
|
yc-${shopCode}-job.log | shop code + level | INFO | JOB-${shopCode} appender, logs all tasks executions, packages:
|
yc-${shopCode}-import.log | shop code + level | INFO | BULKIMPORT-${shopCode} appender, logs all data imports, packages:
|
yc-remote.log | INFO | REMOTE (file upload/download/move/delete operations) appender, logs all data imports, packages:
| |
yc-orderexport.log | INFO | ORDEREXPORT appender, order export related logging, packages:
| |
yc-orderstate.log | INFO | ORDERSTATE appender, order transition related logging, packages:
| |
yc-mail.log | INFO | MAIL appender, email generation and send logging, packages:
| |
yc-maildump.log | INFO | MAILDUMP appender, log full content of email that was sent | |
yc-audit.csv | INFO | AUDIT appender, log persistence updates audit records Change to TRACE to enable audit logging | |
yc-ws.log | ERROR | WS appender, logs web services communication (WS.IN and WS.OUT) Change to INFO to enable logging | |
yc-config.log | INFO | CONFIG appender, logs information on loaded modules and extension points Change to DEBUG to enable logging | |
yc-${shopCode}-sac.log | shop code | DEBUG | SAC (Security access control) appender, logs access violations |
yc-security.log | INFO | SECURITY (Spring) appender, packages:
|