[Glass] Some more easy stats printing or production tools?
Dale Henrichs via Glass
glass at lists.gemtalksystems.com
Wed Jun 10 09:46:26 PDT 2015
It looks like `System cacheStatisticsForAllSlotsShort` is a good
shortcut for getting a basic summary for all of the processes attached
to the shared cache.
Dale
On 6/10/15 9:44 AM, Dale Henrichs wrote:
> Well this one is a bit convoluted and I will be putting together a
> tODE command/api to make this a bit easier...
>
> System class>>_cacheName: sets the 'ProcessName' entry in the
> cacheStatistics array in the SPC. There is a cacheStatitics array in
> the SPC for each GemStone process. Different processes have different
> entries in the cacheStatistics array .... To get the descriptions for
> the cacheStatics for a given process type you use System
> class>>cacheStatisticsDescriptionForType: (see the comment for the arg
> to use). For a gem (type 8), there are 223 cacheStats in GemStone
> 3.2.2 (the stone version I happen to be working with at the moment).
> The first description is 'ProcessName' and that's where the name can
> be found...
>
> To get the 'ProcessName' for your current session:
>
> | cacheStatValues cacheStatDescriptions myProcessName |
> cacheStatValues := System gemCacheStatisticsForSessionId: System
> session.
> cacheStatDescriptions := System cacheStatisticsDescriptionForType: 8.
> myProcessName := cacheStatValues at: (cacheStatDescriptions indexOf:
> 'ProcessName')
>
> You can also access cacheStatistics based on pid
> (cacheStatisticsProcessId:), by gem name (cacheStatsForGemWithName:),
> etc...
>
> Dale
>
> On 6/10/15 2:42 AM, Mariano Martinez Peck via Glass wrote:
>>
>>
>> On Wed, Jun 10, 2015 at 3:37 AM, Johan Brichau via Glass
>> <glass at lists.gemtalksystems.com
>> <mailto:glass at lists.gemtalksystems.com>> wrote:
>>
>> You can set the gem description like this in it’s ‘startup
>> script’ (Smalltalk part:)
>>
>> System _cacheName: '$1_$2’.
>>
>> The $1 and $2 are env vars in my script that contain the adaptor
>> name and port.
>> I think this is also in the standard startSeaside30_Adaptor
>> script but I don’t know for sure.
>>
>>
>> Thanks Johan, that was kind of what I was looking for. It seems the
>> startSeaside30_Adaptor does indeed the thing:
>>
>> System _cacheName: ((x := '$1-' , (GsSession serialOfSession: System
>> session) printString , '-' , System myUserProfile userId) copyFrom: 1
>> to: (x size min: 31)).
>>
>> I put a transcript show in there and it should be setting something
>> like 'FastCGI_service-140-userxxx', which is correct.
>> The problem is that my session descriptions still does not show it.
>> See below.
>>
>> This way, the session name shows up in the stats and should be
>> available where you are looking for it as well I believe.
>>
>>
>> Where? Where it displays the session name in the stats? From
>> #descriptionOfSession: I do not see it in any field...
>>
>> Thanks!
>>
>>
>> Johan
>>
>>> On 10 Jun 2015, at 08:31, Mariano Martinez Peck via Glass
>>> <glass at lists.gemtalksystems.com
>>> <mailto:glass at lists.gemtalksystems.com>> wrote:
>>>
>>>
>>>
>>> On Tue, Jun 9, 2015 at 2:02 PM, Dale Henrichs via
>>> Glass<glass at lists.gemtalksystems.com
>>> <mailto:glass at lists.gemtalksystems.com>>wrote:
>>>
>>> Mariano,
>>>
>>> Great idea!
>>>
>>> I took a look at the `gs` command in tODE and here are a
>>> couple of more things that you could provide:
>>>
>>> System gemConfigurationReport.
>>> System stoneConfigurationReport.
>>> System clientVersionReport.
>>> System clientVersionReport.
>>> System clientVersionReport.
>>>
>>> "The following provides a desription for the current
>>> gemstone gem. `System currentSessions` provides
>>> list of all sessionIds in system, so you could also generate
>>> a table of all sessions and their description"
>>>
>>>
>>> Hi Dale,
>>>
>>> Is there a way to know which are the seaside gems and the
>>> seaside maintenance gem from such a list? Watching the
>>> description and everything, I cannot find an easy way of knowing
>>> it. The only thing is the gem pid. But then it is not that easy
>>> for me to know if such a pid is a seaside gem or not.
>>>
>>> Is there a way? I would like to list the seaside gems and their
>>> status (if at least one seaside gem works)... (I am thinking if
>>> I could do a http request over the exact port and check on
>>> timeout). mmmm maybe I can do a "System perform: " over the
>>> monit status. grrrr gemstone doesn't have permissions to execute
>>> monit..grr. Ok, I will see... but any idea is appreciated.
>>>
>>> Cheers,
>>>
>>>
>>> Thanks
>>>
>>> | sessionId ar |
>>> sessionId := System session.
>>> ar := System descriptionOfSession: sessionId.
>>> ^ Dictionary new
>>> at: #'userProfile' put: (ar at: 1);
>>> at: #'gemPid' put: (ar at: 2);
>>> at: #'gemHost' put: (ar at: 3);
>>> at: #'gemPrimitiveNumber' put: (ar at: 4);
>>> at: #'mostRecentTransactionTime' put: (ar at: 5);
>>> at: #'sessionState' put: (ar at: 6);
>>> at: #'transactionMode' put: (ar at: 7);
>>> at: #'onOldestCommitRecord' put: (ar at: 8);
>>> at: #'sessionSerialNumber' put: (ar at: 9);
>>> at: #'sessionId' put: (ar at: 10);
>>> at: #'gciHostIP' put: (ar at: 11);
>>> at: #'sessionPriority' put: (ar at: 12);
>>> at: #'gciUniqueHostId' put: (ar at: 13);
>>> at: #'mostRecetStoneRequest' put: (ar at: 14);
>>> at: #'sessionLoginTime' put: (ar at: 15);
>>> at: #'systemCommitsSinceSessionView' put: (ar at: 16);
>>> at: #'systemDescription' put: (ar at: 17);
>>> at: #'numTempObjIds' put: (ar at: 18);
>>> at: #'numTempPageIds' put: (ar at: 19);
>>> at: #'sessionVoteState' put: (ar at: 20);
>>> yourself
>>>
>>> Dale
>>>
>>>
>>> On 06/09/2015 09:46 AM, Mariano Martinez Peck via Glass wrote:
>>>> Hi guys,
>>>>
>>>> I am adding some WEB tools for those users which are very
>>>> admin or developers to my app. So far I added WAObjectLog
>>>> and now a simple component that renders the result of
>>>> "(Smalltalk at: #SystemRepository) fileSizeReport. "
>>>> I wonder which other kind of easy stats or production tool
>>>> I might be missing.
>>>> If there is something else that could be of use to me,
>>>> please let me know. I want to provide as much as possible I
>>>> have at hand for a small amount of effort, to my admin users.
>>>>
>>>> Thanks in advance,
>>>>
>>>> --
>>>> Mariano
>>>> http://marianopeck.wordpress.com
>>>> <http://marianopeck.wordpress.com/>
>>>>
>>>>
>>>> _______________________________________________
>>>> Glass mailing list
>>>> Glass at lists.gemtalksystems.com <mailto:Glass at lists.gemtalksystems.com>
>>>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>>
>>>
>>> _______________________________________________
>>> Glass mailing list
>>> Glass at lists.gemtalksystems.com
>>> <mailto:Glass at lists.gemtalksystems.com>
>>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>>
>>>
>>>
>>>
>>> --
>>> Mariano
>>> http://marianopeck.wordpress.com <http://marianopeck.wordpress.com/>
>>> _______________________________________________
>>> Glass mailing list
>>> Glass at lists.gemtalksystems.com
>>> <mailto:Glass at lists.gemtalksystems.com>
>>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>
>>
>> _______________________________________________
>> Glass mailing list
>> Glass at lists.gemtalksystems.com
>> <mailto:Glass at lists.gemtalksystems.com>
>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>
>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>>
>> _______________________________________________
>> Glass mailing list
>> Glass at lists.gemtalksystems.com
>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20150610/bcaea4df/attachment-0001.html>
More information about the Glass
mailing list