[
https://issues.apache.org/jira/browse/HBASE-23938?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Viraj Jasani updated HBASE-23938:
---------------------------------
Release Note:
Config key: hbase.regionserver.slowlog.systable.enabled
Default value: false
This config can be enabled if hbase.regionserver.slowlog.buffer.enabled is
already enabled. While hbase.regionserver.slowlog.buffer.enabled ensures that
any slow/large RPC logs with complete details are written to ring buffer
available at each RegionServer, hbase.regionserver.slowlog.systable.enabled
would ensure that all such logs are also persisted in new system table
hbase:slowlog.
Operator can scan hbase:slowlog with filters to retrieve specific attribute
matching records and this table would be useful to capture historical
performance of slowness of RPC calls with detailed analysis.
hbase:slowlog consists of single ColumnFamily info. info consists of multiple
qualifiers similar to the attributes available to query as part of Admin API:
get_slowlog_responses.
One example of a row from hbase:slowlog scan result (Attached a sample
screenshot in the Jira) :
\x024\xC1\x06X\x81\xF6\xEC
column=info:call_details, timestamp=2020-05-16T14:59:58.764Z,
value=Scan(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ScanRequest)
\x024\xC1\x06X\x81\xF6\xEC
column=info:client_address, timestamp=2020-05-16T14:59:58.764Z,
value=172.20.10.2:57348
\x024\xC1\x06X\x81\xF6\xEC
column=info:method_name, timestamp=2020-05-16T14:59:58.764Z, value=Scan
\x024\xC1\x06X\x81\xF6\xEC column=info:param,
timestamp=2020-05-16T14:59:58.764Z, value=region { type: REGION_NAME value:
"cluster_test,cccccccc,1589635796466.aa45e1571d533f5ed0bb31cdccaaf9cf." } scan
{ a
ttribute { name:
"_isolationlevel_" value: "\x5C000" } start_row: "cccccccc" time_range { from:
0 to: 9223372036854775807 } max_versions: 1 cache_blocks: true max_result_size:
2
097152 caching:
2147483647 include_stop_row: false } number_of_rows: 2147483647 close_scanner:
false client_handles_partials: true client_handles_heartbeats: true
track_scan_met
rics: false
\x024\xC1\x06X\x81\xF6\xEC
column=info:processing_time, timestamp=2020-05-16T14:59:58.764Z, value=24
\x024\xC1\x06X\x81\xF6\xEC
column=info:queue_time, timestamp=2020-05-16T14:59:58.764Z, value=0
\x024\xC1\x06X\x81\xF6\xEC
column=info:region_name, timestamp=2020-05-16T14:59:58.764Z,
value=cluster_test,cccccccc,1589635796466.aa45e1571d533f5ed0bb31cdccaaf9cf.
\x024\xC1\x06X\x81\xF6\xEC
column=info:response_size, timestamp=2020-05-16T14:59:58.764Z, value=211227
\x024\xC1\x06X\x81\xF6\xEC
column=info:server_class, timestamp=2020-05-16T14:59:58.764Z,
value=HRegionServer
\x024\xC1\x06X\x81\xF6\xEC
column=info:start_time, timestamp=2020-05-16T14:59:58.764Z, value=1589640743932
\x024\xC1\x06X\x81\xF6\xEC column=info:type,
timestamp=2020-05-16T14:59:58.764Z, value=ALL
\x024\xC1\x06X\x81\xF6\xEC
column=info:username, timestamp=2020-05-16T14:59:58.764Z, value=vjasani
was:
Config key: hbase.regionserver.slowlog.systable.enabled
Default value: false
This config can be enabled if hbase.regionserver.slowlog.buffer.enabled is
already enabled. While hbase.regionserver.slowlog.buffer.enabled ensures that
any slow/large RPC logs with complete details are written to ring buffer
available at each RegionServer, hbase.regionserver.slowlog.systable.enabled
would ensure that all such logs are also persisted in new system table
hbase:slowlog.
Operator can scan hbase:slowlog with filters to retrieve specific attribute
matching records and this table would be useful to capture historical
performance of slowness of RPC calls with detailed analysis.
hbase:slowlog consists of single ColumnFamily info. info consists of multiple
qualifiers similar to the attributes available to query as part of Admin API:
get_slowlog_responses.
One example of a row from hbase:slowlog scan result:
\x024\xC1\x06X\x81\xF6\xEC
column=info:call_details, timestamp=2020-05-16T14:59:58.764Z,
value=Scan(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ScanRequest)
\x024\xC1\x06X\x81\xF6\xEC
column=info:client_address, timestamp=2020-05-16T14:59:58.764Z,
value=172.20.10.2:57348
\x024\xC1\x06X\x81\xF6\xEC
column=info:method_name, timestamp=2020-05-16T14:59:58.764Z, value=Scan
\x024\xC1\x06X\x81\xF6\xEC column=info:param,
timestamp=2020-05-16T14:59:58.764Z, value=region { type: REGION_NAME value:
"cluster_test,cccccccc,1589635796466.aa45e1571d533f5ed0bb31cdccaaf9cf." } scan
{ a
ttribute { name:
"_isolationlevel_" value: "\x5C000" } start_row: "cccccccc" time_range { from:
0 to: 9223372036854775807 } max_versions: 1 cache_blocks: true max_result_size:
2
097152 caching:
2147483647 include_stop_row: false } number_of_rows: 2147483647 close_scanner:
false client_handles_partials: true client_handles_heartbeats: true
track_scan_met
rics: false
\x024\xC1\x06X\x81\xF6\xEC
column=info:processing_time, timestamp=2020-05-16T14:59:58.764Z, value=24
\x024\xC1\x06X\x81\xF6\xEC
column=info:queue_time, timestamp=2020-05-16T14:59:58.764Z, value=0
\x024\xC1\x06X\x81\xF6\xEC
column=info:region_name, timestamp=2020-05-16T14:59:58.764Z,
value=cluster_test,cccccccc,1589635796466.aa45e1571d533f5ed0bb31cdccaaf9cf.
\x024\xC1\x06X\x81\xF6\xEC
column=info:response_size, timestamp=2020-05-16T14:59:58.764Z, value=211227
\x024\xC1\x06X\x81\xF6\xEC
column=info:server_class, timestamp=2020-05-16T14:59:58.764Z,
value=HRegionServer
\x024\xC1\x06X\x81\xF6\xEC
column=info:start_time, timestamp=2020-05-16T14:59:58.764Z, value=1589640743932
\x024\xC1\x06X\x81\xF6\xEC column=info:type,
timestamp=2020-05-16T14:59:58.764Z, value=ALL
\x024\xC1\x06X\x81\xF6\xEC
column=info:username, timestamp=2020-05-16T14:59:58.764Z, value=vjasani
> Replicate slow/large RPC calls to HDFS
> --------------------------------------
>
> Key: HBASE-23938
> URL: https://issues.apache.org/jira/browse/HBASE-23938
> Project: HBase
> Issue Type: Sub-task
> Affects Versions: 3.0.0-alpha-1, 2.3.0, 1.7.0
> Reporter: Viraj Jasani
> Assignee: Viraj Jasani
> Priority: Major
> Fix For: 3.0.0-alpha-1, 2.3.0
>
> Attachments: Screen Shot 2020-05-20 at 4.23.06 PM.png
>
>
> We should provide capability to replicate complete slow and large RPC logs to
> HDFS or create new system table in addition to Ring Buffer. This way we don't
> lose any of slow logs and operator can retrieve all the slow/large logs.
> Replicating logs to HDFS / creating new system table should be configurable.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)